![](/img/trans.png)
[英]JQuery selector to negate specific HTML elements within a parent element
[英]Jquery Selector specific elements of a parent
我正在构建一个菜单,看起来像这样:
<ul id="myUl">
<li><span>li #1</span>
<ul>
<li>
<div class="myContent">
<a href="" name="myLink">clickMe!</a>
</div>
</li>
</li>
</ul>
因此,我想为id为"myUl".
的ul
的<a>
标记定义一个单击处理程序"myUl".
我尝试了类似CSS选择器的方法:
$('ul[id="myUl] a').on('click', do stuff!);
要么
$('ul[id="myUl] > a').on('click', do stuff!);
//这不起作用,因为a
不是ul
的直接子代。
处理此特定ul
的a
元素的点击的正确方法是什么?
像这样。
$('#myUl a').on('click', your_func);
请注意,我没有使用>
,后者将您限制为ul
直接后代(子代) 。
或者您可以这样做。
$('#myUl').on('click', 'a', your_func);
不同之处在于,这会将处理程序绑定到UL,但仅在单击a
时触发它。 第一个示例直接绑定到a
。
很简单:
$('#myUl').on('click', 'a', do stuff!);
在选择器中使用>
使其比需要的更加具体。 如果将其取出,则它将适用于任何子元素(在任何级别),而不是直接子元素。
$(document).ready(function() {
$('ul#myUl a').click(function() {
// do stuff
});
});
$('ul#myUl a').on('click', do stuff!);
要么
$('ul[id="myUl"] a').on('click', do stuff!);
应该管用。
您在$('ul[id="myUl"] a').on('click', do stuff!);
和$('ul[id="myUl"] > a').on('click', do stuff!);
但是您可以直接使用element的id作为选择器:
$('#myUl a').on('click', handler function);
您缺少引号,请尝试以下操作:
$('#myUl a').on('click', function(){alert('do stuff!')});
您还可以在选择器中指定上下文
$('a','#myUl').click
// This is equivelant to $('#myUl').find('a')
// So this finds all descendant anchor tags of #myUl
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.