2015-11-14 59 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>