2010-04-25 158 views
1

我有选择元素使用jQuery这里属性麻烦是我的HTML:与jQuery选择问题

<a class="myselector" rel="I need this value"></a> 

<div class="someClass" id="someID"> 
...bunch of elements/content 
<input type="button" name="myInput" id="inputID" title="myInput Title" /> 
...bunch of elements/content 
</div> 

...一堆元素/内容

在这里,我试图让相对这里myselector的价值是我试过,但它不工作:

$('#inputID').live('click',function(){ 
console.log($(this).closest('a.myselector').attr('rel')); 
}); 

也试过这个,因为所有被包裹在包装DIV:

$('#inputID').live('click',function(){ 
console.log($(this).parent('div.wrapper').find('a.myselector').attr('rel')); 
}); 

我得到undefined在这两种情况下的萤火虫值,我使用live,因为div#someID加载在文件中,当页面第一次加载时它不存在。任何建议,我怎么能得到我的选择器rel值?

编辑:

然而,当我寻找('a.myselector')没有rel属性,我提醒Object object,并得到执行console.log东西[]

回答

3

这应该工作:

console.log($(this).closest('div.wrapper').find('a.myselector').attr('rel')); 

你的第一个例子在你的问题不起作用,因为你试图选择的锚标记是not a parent/ancestor

console.log($(this).closest('a.myselector').attr('rel')); 

,如果你改变.parent().parents()你的第二个例子就是工作,因为.parent()只有穿越one level了DOM,所以下面:

console.log($(this).parents('div.wrapper').find('a.myselector').attr('rel')); 
+0

@ Karim79这似乎没什么问题,你的第二选择还是输出不确定,但仍然第一个作品,谢谢某些时候我会接受这个答案时间流逝 – 2010-04-25 13:28:30

0

刚刚送走我的头顶,你有没有试过accesing你的rel值没有使用live(即直接id $(“inputid”)。attr(“rel”))?

我通常在遇到像这样的问题时一个一个消除嫌疑人。

0

请尝试this

$('#inputID').live('click',function(){ 
    // alert($(this).parent().parent().html()); 
alert($(this).parent().parent().find('a.myselector').attr('rel')); 
}); 

HTH

+0

Tnx Raja但这是不实际的,它不是一个静态网站 – 2010-04-25 15:19:42