2

我试图为每一个被点击的复选框发出警报。

这是我的 JS 代码:

 $('#acts').find(':checkbox').click(function(){
     if($(this) == 'all')
     {
         alert('Checkbox Clicked');
     }
 });

和 HTML:

<div id="acts">
    <input type="checkbox" id="all">
    <input type="checkbox" value="Brussel" name="locality"> <label>Brussel</label>
    <input type="checkbox" value="Anderlecht" name="locality"> <label>Anderlecht</label>
    <input type="checkbox" value="Oudergem" name="locality"> <label>Oudergem</label>
</div>

我首先尝试了这种方式,但也尝试添加

var theName = $(this);

var theName = String($(this));

并在 IF 语句中与“theName”进行比较,但 $(this) 或我分配给它的变量不断返回我 [Object][object],我无法像这样比较。

4

3 回答 3

10

您可以简单地检查

if(this.id == 'all')

请注意,访问该id属性不需要$(this).attr('id'):直接访问该属性会更快。

正如@RoryMcCrossan 在下面的评论中所说,this并且$(this)对象,因此将它们与string进行比较是没有意义的。

于 2013-07-31T12:29:11.567 回答
5

像这样。

$(this).attr("id") == 'all'

尽管使用“id”来“识别”一个元素并不是最好的方法。请记住,您在一个页面上只能有一个 id。dataattr 可能是更合适的方法。在这种情况下你会做

<input type="checkbox" data-something="all" />

$(this).data("something") == 'all';
于 2013-07-31T12:29:18.303 回答
0

如果您想了解有关每个对象的更多信息,请尝试:

console.log(JSON.stringify($(this)));
于 2013-07-31T12:30:19.303 回答