2015-11-14 60 views
0

让说我有以下标记:jQuery的内容返回prevObject空标签

<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等)。是这样,还是有我的代码有问题?

## UPDATE ##

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

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

其中$(this)指按钮actions柱。

回答

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对象并获取该对象中的第一个元素(请记住JavaScript对象都类似于关联数组)。

var contents = $('#this-is-empty')[0]; //returns a HTML DOM Object 
0

#this-is-empty没有孩子或文本节点,所以contents().length为零。 (有趣的jQuery的返回一种叫 “prevObject,” 但你可以忽略)。

为了得到tdnodeValuenodeType,这样做:

console.log($('#this-is-empty')[0].nodeValue); //null 
 
console.log($('#this-is-empty')[0].nodeType); //1
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <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> 
 
</table>