target = manipulationTarget(this, elem);这个是坐什么
搞错了,这里有一个三目运算符优先级的问题。。。。。。
那target不就返回true或false?那target.append()不报错?
这就是处理table的问题
下面是 jquery 源码,是对 table 元素做特殊处理用的。 这里巧妙的运用了 ”xxx? xx:x“ 三元运算符
// Support: 1.x compatibility
// Manipulating tables requires a tbody
function manipulationTarget( elem, content ) {
return jQuery.nodeName( elem, "table" ) &&
jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ?
elem.getElementsByTagName("tbody")[0] ||
elem.appendChild( elem.ownerDocument.createElement("tbody") ) :
elem;
}