在jQuery监听器中从ID到达元素

时间:2013-08-06 10:39:52

标签: jquery listener selector

我有一些像这样的HTML:

<select id="myselect">
  <option>...</option>
  <option>...</option>
  <option>...</option>
</select>

<div class="myclass" id="mydiv">[...]</div>

和我的js

$("#myselect").addEvents({
  ..., 
  change: function(){
    $("#mydiv").addClass("anotherclass");
  }
  ...
});

好吧,我的脚本无法在Chrome开发者工具的js控制台中使用$("#id")。这是怎么回事?可能在监听器中,this对象是事件提升者,$("")选择器无法正常工作吗?

谢谢

编辑:在问题中只是一个拼写错误,我忘记了第一个选择器中的#。问题仍然存在。

5 个答案:

答案 0 :(得分:0)

可能必须是$("#myselect")而不是$("myselect")

答案 1 :(得分:0)

你错过#进入jquery选择器
试试这个:

$("#myselect").addEvents({
  ..., 
  change: function(){
    $("#mydiv").addClass("anotherclass");
  }
  ...
});

答案 2 :(得分:0)

您是否忘记使用文档?因为如果你在DOM准备好之前尝试选择它们,jQuery就找不到元素。

$(document).ready(function() {
  $("#myselect").addEvents({ ....

  ... })
});

答案 3 :(得分:0)

我正在观看代码中的一小部分;现在我把它改成它似乎是MooTools,而不是jQuery;我之前没有注意到。所以,我认为这就是问题所在。

答案 4 :(得分:0)

addEvents()不是jQuery方法(我相信它是MooTools),如果你想使用与上面相同的语法绑定事件处理程序,请使用on()

$(document).ready(function() {
    $('#myselect').on({
        change: function() {
            $('#mydiv').addClass('anotherClass');
        }
    });
});