我有这个结构:
<input placeholder="Filter by name" id="filterBox" type="text" />
<ul class="navList">
<li><a>1</a></li>
<li><a>2</a></li>
<li><a>3</a></li>
<li><a>4</a></li>
<ul>
我想只选择第一位父母
例如,当我点击<li><a>3</a></li>
<a>3</a>
我尝试了.parent()
,.closest('li')
,但它一直在选择我的所有列表。
$('#filterBox').keyup(function(){
var valThis = $(this).val().toLowerCase();
$('.navList>li>a').each(function(){
var text = $(this).text().toLowerCase();
(text.indexOf(valThis) == 0) ? $(this).parent().show() : $(this).parent().hide();
});
});
解决问题后,这是正常工作的JSFiddle,谢谢:http://jsfiddle.net/ybugdb57/
答案 0 :(得分:0)
让其直接使用父母
$('#element').parent();
答案 1 :(得分:0)
在click
事件处理程序中,您可以编写如下内容:
$('a').click(function(e){
var myParent = $(this).parent();
/* ... other code ... */
});
中的示例
答案 2 :(得分:0)
它是$(selector).parent()
;就是这样。问题是,您在上下文中没有正确使用它 - 这意味着您不知道如何定位被点击的元素 - 这是此选择器。它可能应该是谎言:
$(document).on('click','a',function(e){
$(this).parent();
});
答案 3 :(得分:0)
这两项工作
$('a').click(function(e){
console.log($(this).parent());
});
$('a').click(function(e){
console.log($(this).closest('li'));
});