在javascript

时间:2017-04-08 15:10:10

标签: javascript dom

我知道如何找到特定的文字,但我真的很难找到具有特定文字的元素 例如:<span class="foo">Special</span>

是否有类似下面这个脚本的示例来查找带文字的元素?

var txt = window.document.body.innerHTML;
if (txt.match(/Special/)) {
    // do something if true
    alert("Found");
} else {
    // do something if false
    alert("Sorry");

};

2 个答案:

答案 0 :(得分:2)

你可以,例如捕获文档中的每个元素,并检查它们中是否包含给定文本。

&#13;
&#13;
var elems = document.querySelectorAll("*"),
    res = Array.from(elems).find(v => v.textContent == 'Special');
    
    console.log(res ? 'found!' : 'not found');
&#13;
<span class="foo">Special</span>
<span class="foo">Else</span>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

使用纯Javascript只需抓住元素的父级:

var x = this.parentElement.nodeName; //x=="span"

var x = this.parentElement; //x == <span> object

使用jQuery只需抓住元素的父级:

$(this).parents("span");

因此,如果您在内部添加上述行,则可以将span元素作为对象或文本。