jquery内容返回空标记中的prevObject

时间:2015-11-14 11:54:04

标签: jquery

假设我有以下标记:

<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属性,如nodeValuenodeType等)。就是这样,或者我的代码有问题吗?

##更新##

无论如何,实际的代码是:

var td = $(this).closest('tr').find('td').eq(i);
var content = td.contents();

其中$(this)引用actions列中的按钮。

2 个答案:

答案 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