2012-10-08 111 views
1

大家好!我这样做:按ID查找元素

$('#kill').live('click',function(){ 
    $closeId = $(this).parent().attr('id'); 
    $('#suggested').find('#' + $closeId).removeClass().addClass('active'); 
}); 

,它不工作。我试图测试它:

var $test = $('#suggested').find('#' + $closeId).length; 

它返回'0',这是不正确的。如果你知道如何解决这个问题会很好。

谢谢!

+0

你为什么要调用你的变量'$ var'这不是php ... – Jakub

+3

@Jakub〜个人,我没有使用该约定,但我已经看到它用于“标记”变量引用jQuery对象(相反,我猜,DOM元素可能?)。 –

+0

@Jakub - http://stackoverflow.com/questions/205853/why-would-a-javascript-variable-start-with-a-dollar-sign – billyonecan

回答

3

$('#kill').live('click',function(){ 
    $(this).parent().removeClass().addClass('active'); 
}); 

注:

  • 你没有拿到ID,如果你只是想要的元素。
  • 如果您有ID,请勿使用find。由于您只能在文档中使用给定ID的一个元素,因此最有效的方法是使用$('#' + $closeId)
  • 带有新的jQuery版本,请不要使用live,而是使用on
+0

感谢您的回复。让我解释一下:我有2个div和一个标签输入; #kill从输入中删除当前标记,并且我不会让这个标记在div中再次可见/活动。是的 - 当前标签在所有情况下都具有相同的ID。 – user1726862