检查$(this)是什么

时间:2013-07-31 12:27:50

标签: javascript jquery

我正在尝试为每个点击一个复选框获取提醒。

这是我的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],我无法比较那样。< / p>

3 个答案:

答案 0 :(得分:10)

您只需检查

即可
if(this.id == 'all')

请注意,要访问id媒体资源,无需执行$(this).attr('id'):直接访问该媒体资源的速度更快。

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

答案 1 :(得分:5)

喜欢这个。

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

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

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

$(this).data("something") == 'all';

答案 2 :(得分:0)

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

console.log(JSON.stringify($(this)));