2015-09-11 60 views
0

如果我想使用jQuery獲取文本節點的值,我該如何做到這一點?使用jQuery獲取第N個文本節點的值

例如,具有以下HTML,我怎麼才能只值「XYZ-123」,而無需解析出「SID:」使用正則表達式:

<div id="sid"><strong>SID: </strong> XYZ-123</div> 

回答

2

嘗試使用filter()Node.TEXT_NODEnodeType

$('#sid').contents().filter(function() { 
    return this.nodeType === Node.TEXT_NODE; 
}).text(); 

上面的代碼查找基於該nodeType內容和過濾器。我們只對文本節點感興趣。

片段

$(function() { 
 
    a = $('#sid').contents().filter(function() { 
 
    return this.nodeType === Node.TEXT_NODE; 
 
    }).text(); 
 
    alert(a); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<div id="sid"><strong>SID: </strong> XYZ-123</div>

要知道更多:

+0

雖然我如何獲得第N個節點?假設有多個文本節點的情況比較複雜,比如'

SKU:XYZ-123(10ct)
'如果我想分別獲得SKU值和括號中的值,那麼這將如何工作? ()# – eComEvo

+1

'$('#sid')。contents()。filter(function(){ return this.nodeType === Node.TEXT_NODE; }).get(WHICH_NODE_HERE).text();' –

+0

@eComEvo Hope那答案! ':)' –

0

您可以使用獲得的內容與過濾功能一起div元素得到文本節點元素:

$('#sid').contents().filter(function() { 
    return this.nodeType === 3; //get text nodes 
}).text(); 

Working Demo