我需要获取具有特定id的每个元素,获取对象的父元素,并设置其ID。
我该怎么做?
我有这段代码:
<li id="edge_top"> </li>
<!-- Menu Items Here -->
<li id="not_selected"><a id="selection_link" href="index.htm">Home</a></li>
<li id="not_selected"><a id="selection_link" href="page1.htm">Subitem 1</a></li>
<li id="not_selected"><a id="selection_link" href="page2.htm">Subitem 2</a></li>
<!-- Menu Items End Here -->
<li id="edge_bottom"> </li>
我需要找到id为“selection_link”的所有锚元素,获取父元素(“list item”元素[li])并将其ID设置为“selected”。我如何用jQuery做到这一点?我将使用条件来确定是否实际允许li元素获取新ID。 (如果URL与anchor元素的href属性匹配)。
答案 0 :(得分:11)
HTML规范指定ID应仅应用于1个元素。您不能拥有多个具有相同ID的元素。
在这种情况下,最好使用类。
按班级选择:
$(".classname")...
编辑:基于您的代码的示例:
<li class="edge_top"> </li>
<!-- Menu Items Here -->
<li class="not_selected"><a class="selection_link" href="index.htm">Home</a></li>
<li class="not_selected"><a class="selection_link" href="page1.htm">Subitem 1</a></li>
<li class="not_selected"><a class="selection_link" href="page2.htm">Subitem 2</a></li>
<!-- Menu Items End Here -->
<li class="edge_bottom"> </li>
<script type="text/javascript">
$(document).ready(function(){
$(".selection_link").parent().removeClass("not_selected").addClass("selected")
});
</script>
答案 1 :(得分:2)
您需要使用类。在HTML中,您不允许多次使用ID。
答案 2 :(得分:2)
在您的XHTML文档中,id属性应该是唯一的,因此这个问题并不真正有效。
虽然如果你真的坚持这可能会有用:
$("[id=xx]")
答案 3 :(得分:1)
$('li a').each(function(){
if ($(window).attr('location').href.match($(this).attr('href'))) {
//example with class
$(this).parent().addClass('selected');
// example with id
$(this).parent().attr('id', 'selected');
}
});