获取具有特定ID的每个元素(jQuery)

时间:2011-05-25 12:01:36

标签: javascript jquery html

我需要获取具有特定id的每个元素,获取对象的父元素,并设置其ID。

我该怎么做?

我有这段代码:

<li id="edge_top">&nbsp;</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">&nbsp;</li>

我需要找到id为“selection_link”的所有锚元素,获取父元素(“list item”元素[li])并将其ID设置为“selected”。我如何用jQuery做到这一点?我将使用条件来确定是否实际允许li元素获取新ID。 (如果URL与anchor元素的href属性匹配)。

4 个答案:

答案 0 :(得分:11)

HTML规范指定ID应仅应用于1个元素。您不能拥有多个具有相同ID的元素。

在这种情况下,最好使用类。

按班级选择:

$(".classname")...

编辑:基于您的代码的示例:

<li class="edge_top">&nbsp;</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">&nbsp;</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');

    }

});