我试过几种方法,但只是无法完成。jQuery。每个不遍历所有后代
我正在设计ul/li的菜单。我想这样做如果<li>
具有href属性,jQuery会创建一个事件让它重定向到该属性存储的站点。但是当没有href时,没有任何反应。 问题是当我点击了一些利,在同一分支的人也越来越事件
$("#menu-h > li li").each(function() {
if($(this).attr("href")) {
$(this).click(function() {
window.location = $(this).attr("href");
return false;
});
}
});
看来,each()
不遍历所有“里的#menu-h > li
后,但仅限于直接后代(子),所以当我点击里面的更多内容时,比如#menu-h > li > li
,$(this)存储它的父元素的DOM元素。这是错误的选择器的问题,还是我不能遍历所有的后代,只有直接的?
尝试'$( “#菜单-H利[HREF]”)' – 2013-03-19 07:41:36
请包括HTML – Boaz 2013-03-19 07:42:09
事件传播的一个样本。如果你点击一个元素,你也可以点击它的父母。如果你想停止传播,你需要明确地做到这一点 – 2013-03-19 07:43:19