选择DIV包含特定文本

时间:2016-11-23 06:13:29

标签: jquery html drag-and-drop

我尝试使用特定文本获取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。

2 个答案:

答案 0 :(得分:3)

对于精确内容匹配,请使用filter()方法。虽然这里不需要find()方法,但是将它们组合成一个选择器。

$(".ui-droppable div.numb.ui-draggable:contains('1')").filter(function(){
  return $(this).text().trim() == '1' ; 
}).addClass('cont');

&#13;
&#13;
$(".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;
&#13;
&#13;

答案 1 :(得分:1)

您可以更好,更简单,更有效地使用foreach

$( ".ui-draggable-handle" ).each(function() {
    if($(this).html() == "1"){
        $(this).addClass('cont');
        return;
    }
});