我試圖將一個類應用於所有包含文本或其中包含文本和其他dom元素的元素。至少在元素內部必須有某種文本。查找包含文本和其他DOM元素裏面的dom元素
這個div應該得到的類:
<div class="theClass">Some text</div>
這個div應該得到的類太:
<div class="theClass">Some text<div class="theClass more">More text</div></div>
但是這一次應該只給孩子的div類:
<div class=""><div class="theClass more">More text</div></div>
目前我使用:我在這裏找到的hasText選擇器finding elements with text using jQuery。
jQuery.expr[':'].hasText = function(element, index) {
// if there is only one child, and it is a text node
if (element.childNodes.length == 1 && element.firstChild.nodeType == 3) {
return jQuery.trim(element.innerHTML).length > 0;
}
return false;
};
但它只返回包含文本的元素。我喜歡有包含文本和其他元素的元素(如果有的話)。
謝謝!
謝謝我也試過自己,但它的錯誤:element.firstChild爲null – Rein
我在這裏試過了,它適用於我:http://jsfiddle.net/vSXd5/ –
啊我明白了。這是因爲我喜歡使用:$('*:hasText')。addClass('theClass') – Rein