我有一个像这样的列表
<ul>
<li class="somename">1</li>
<li class="somename">2</li>
<li class="somename">3</li>
<li class="somename">1</li>
</ul>
然后我有这样的值
var myvalue = 1;
我想将myvalue与所有$(".somename).text()
进行比较以找到匹配的值并将匹配的文本更改为其他内容,如下所示
<ul>
<li class="somename">changed</li>
<li class="somename">2</li>
<li class="somename">3</li>
<li class="somename">changed</li>
</ul>
$(".somename").text()
给我一个字符串中的所有文字,如1231
我尝试了循环
for(i=0;i<$(".somename").length;i++){
if(myvalue == $(".somename")[i].text()){
$(this).text("changed")
}
}
答案 0 :(得分:1)
在jQuery对象上使用括号对象属性访问器(2
)时,您正在访问集合中的基础对象,因此[]
将不可用,因为它不是底层DOM上的函数对象(你应该在控制台上看到错误)
您可以使用jQuery .each
方法循环遍历集合
.text()
如果您不想使用.each
方法并且只使用$(".somename").each(function(){
//unless you are going to be doing more jQuery DOM stuff
//no need to wrap in jQuery just access the innerText
if(myvalue == this.innerText){
this.innerText = "changed";
}
});
,则需要使用.eq
或类似方法来获取特定索引处的jQuery包装对象< / p>
for loop
答案 1 :(得分:1)
$('.somename').each(function() {
var value = $(this).text();
if (value == "1") {
$(this).text("Changed")
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li class="somename">1</li>
<li class="somename">2</li>
<li class="somename">3</li>
<li class="somename">1</li>
</ul>
.each()
循环遍历班级的所有元素。答案 2 :(得分:0)
这样做......
$(".somename").each(function(e, val ){
if (myvalue == e.text){
//do stuff here
}
));
答案 3 :(得分:0)
请尝试一下,但是我在我自己的系统上没试过这个。
numpy
答案 4 :(得分:0)
您可以使用jQuery .each函数。
var myvalue=1;
$('.somename').each(function(){
if($(this).text()==myvalue){
$(this).text('changed');
}
});
答案 5 :(得分:0)
这里几件事 1.当您搜索任何DOM元素时。尝试将其复制到变量中然后使用它.DOM搜索是一项代价高昂的操作 2.当你使用for循环时,这将指向窗口对象
检查以下代码段
$(document).ready(function(){
var someoneArray=$(".somename");
var someoneArrayLength=someoneArray.length;
var myValue=1;
for(var i=0;i<someoneArrayLength;i++){
var value=parseInt($(someoneArray[i]).text());
console.log(this)
if(myValue == value){
alert("here");
$(someoneArray[i]).text("changed");
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li class="somename">1</li>
<li class="somename">2</li>
<li class="somename">3</li>
<li class="somename">1</li>
</ul>
希望这有帮助