假设我有以下标记:
<tr>
<td>Yamaha 125 RR</td>
<td>PJ/1010/2015</td>
<td>2015-11-18</td>
<td>2015-11-20</td>
<td id="this-is-empty"></td>
<td>Gear 1</td>
<td>10</td>
<td>action</td>
</tr>
当我执行$('#this-is-empty').contents()
时,它返回prevObject,而不是我期望的东西(我正在尝试获取本机JS属性,如nodeValue
,nodeType
等)。就是这样,或者我的代码有问题吗?
##更新##
无论如何,实际的代码是:
var td = $(this).closest('tr').find('td').eq(i);
var content = td.contents();
其中$(this)
引用actions
列中的按钮。
答案 0 :(得分:0)
你想要一个HTML DOM
对象来实现它。
document.getElementById('this-is-empty'); //returns a HTML DOM Object
var contents = $('#this-is-empty'); //returns a jQuery Object
在jQuery中,要获得与document.getElementById相同的结果,您可以访问jQuery Object并获取对象中的第一个元素(记住JavaScript对象的行为类似于关联数组)。
var contents = $('#this-is-empty')[0]; //returns a HTML DOM Object
答案 1 :(得分:0)
#this-is-empty
没有子节点或文本节点,因此contents().length
为零。 (有趣的是jQuery返回一个名为“prevObject”的东西,但你可以忽略它。)
要获取nodeValue
的{{1}}或nodeType
,请执行以下操作:
td
console.log($('#this-is-empty')[0].nodeValue); //null
console.log($('#this-is-empty')[0].nodeType); //1