检测跨度文本的变化

时间:2017-09-14 14:44:53

标签: javascript jquery

我有以下内容:

$(document).ready(function(){
  var span = $('#multiple_group_select_chosen span:first');
  span.on('DOMSubtreeModified', function(){
    console.log('bla');
    if (['No groups in this year', '', 'Now please select a group', 'Please select a'].includes(span.text())) {
      $('#classes').disabled = true;
    } else {
      $('#classes').disabled = false;
    }
  });
});

当我打电话

$('#multiple_group_select_chosen span:first').text()

从控制台返回从下拉列表中选择的值,并随着下拉选择的更改而更改。如何检测到这种情况?目前没有console.log的' bla'发生的历史...

提前致谢。

编辑:HTML

<div class="chosen-container chosen-container-single chosen-container-single-nosearch" style="width: 100%;" title="" id="multiple_group_select_chosen">
  <a class="chosen-single">
    <span>DROPDOWN TEXT</span>
    <div><b></b></div>
  </a>
</div>

我无法控制这个html的出现方式

1 个答案:

答案 0 :(得分:0)

我可能错了,但这里可能有一个非常简单的解决方案。不要将span作为var然后将on事件处理程序绑定到该变量,而是尝试将事件直接绑定到$('#multiple_group_select_chosen span:first').on('event', function() { ... });

之类的节点

通过将元素分配给变量,您可能正在寻找那些&#34;已保存的&#34;元素的版本而不是页面上的实际DOM元素。知识更多的人可能能够验证这一点。