我有一个像这样的html结构:
<div class="test">
<span class="content">1</span>
</div>
<div class="test">
<span class="content">2</span>
</div>
...
<div class="test">
<span class="content">100</span>
</div>
在我的javascript代码中,我需要获取一个<span>
元素,其中content
类具有1
或2
,...,{{{ 1}}
我测试了jquery .contains
方法,但这会返回所有具有100
的元素。例如1
,1
,... 。
答案 0 :(得分:4)
您可以使用filter
方法接受应用于每个项目的回调函数。
var array=$('.test').find('.content').filter(function(){
return $(this).text().trim()==100;
});
console.log(Array.from(array));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="test">
<span class="content">1</span>
</div>
<div class="test">
<span class="content">2</span>
</div>
<div class="test">
<span class="content">100</span>
</div>
答案 1 :(得分:0)
您可以按以下方式继续:
$('.content').each(function(){
if($(this).html() == "2")
{
console.log("THE SPAN WITH 2 IS ");
console.log($(this)[0]);
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="test">
<span class="content">1</span>
</div>
<div class="test">
<span class="content">2</span>
</div>
<div class="test">
<span class="content">100</span>
</div>
&#13;
我们在这里做的是检查跨度的内容类,并检查它们的内部html是否为2,如果是我们的console.log它。
答案 2 :(得分:0)
您可以使用vanilla .indexOf()方法。
indexOf方法接受您要查找的字符串的参数,并返回索引(如果已找到),如果不是,则返回 -1 。
var myEl = document.querySelector(".test"):
for loop...
if( myEl.innerHTML.indexOf(2) != -1 ){
console.log("This element contains the number 2")
}
答案 3 :(得分:0)
您可以使用.filter()
来获取并检查.textContent
或.innerHTML
元素,在.filter()
回调您可以使用RegExp
N$
N
是要匹配的数字。例如,要匹配"1"
设置为"2"
或.textContent
的元素,您可以使用RegExp
/1$|2$/
;匹配"100"
,/100$/
;与RegExp.prototype.test()
var filtered = $("span.content").filter((_, {textContent}) =>
/1$|2$/.test(textContent));
filtered.css("color", "green");
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
</script>
<div class="test">
<span class="content">1</span>
</div>
<div class="test">
<span class="content">2</span>
</div>
...
<div class="test">
<span class="content">100</span>
</div>
&#13;
答案 4 :(得分:-1)
你可以这样做......
$('.test').each(function() {
if($(this).text == '1')
{
var a = $(this).html();
}
});
a现在将包含该跨度的html,其中包含您的文本。