我尝试使用特定文本获取div,但它会给我错误的结果。
这是我的HTML:
<div class="ui-droppable">
<div class="numb ui-draggable ui-draggable-handle">1</div>
<div class="numb ui-draggable ui-draggable-handle">10</div>
<div class="numb ui-draggable ui-draggable-handle">7</div>
<div class="numb ui-draggable ui-draggable-handle bred">6</div>
</div>
这是我的jquery:
$('.ui-droppable').find("div.numb.ui-draggable:contains('1')").addClass('cont');
如果我运行我的jquery,它会将class添加到包含1和10的div。
答案 0 :(得分:3)
对于精确内容匹配,请使用filter()
方法。虽然这里不需要find()
方法,但是将它们组合成一个选择器。
$(".ui-droppable div.numb.ui-draggable:contains('1')").filter(function(){
return $(this).text().trim() == '1' ;
}).addClass('cont');
$(".ui-droppable div.numb.ui-draggable:contains('1')").filter(function() {
return $(this).text().trim() == '1';
}).addClass('cont');
&#13;
.cont {
color: red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="ui-droppable">
<div class="numb ui-draggable ui-draggable-handle">1</div>
<div class="numb ui-draggable ui-draggable-handle">10</div>
<div class="numb ui-draggable ui-draggable-handle">7</div>
<div class="numb ui-draggable ui-draggable-handle bred">6</div>
</div>
&#13;
答案 1 :(得分:1)
您可以更好,更简单,更有效地使用foreach
$( ".ui-draggable-handle" ).each(function() {
if($(this).html() == "1"){
$(this).addClass('cont');
return;
}
});