【问题标题】:Do an jquery .attr("href", "new url") on sevral objects not just one对多个对象执行 jquery .attr("href", "new url") 而不仅仅是一个
【发布时间】:2011-07-30 12:43:40
【问题描述】:

我有一个网站多次使用例如html元素id="some_id",我想用jquery更改所有这些元素,但是当我运行jquery代码时:$("#some_id").attr("href", "new url");或者例如$("#some_id").text("new text")我只更改第一个元素/对象/链接。

像这样:

<a id="username">username1</a>
<a id="username">username1</a>

编辑第一个元素的jquery:

$("#username").text("username2"); 

如何使用 jquery 编辑这两个元素。

【问题讨论】:

    标签: jquery html jquery-selectors jquery-attributes


    【解决方案1】:

    您不能有重复的 ID。

    改为让它们成为一个类。

    <a class="username">username1</a>
    <a class="username">username1</a>
    
    $(".username").text("username2");

    或者使 ID 唯一:

    <a id="username_1">username1</a>
    <a id="username_2">username1</a>
    
    $('a[id^="username_"]').text("username2");

    这个使用attribute-starts-with-selector[docs]来选择ID以username_开头的&lt;a&gt;元素。

    【讨论】:

      【解决方案2】:

      这是因为您只能在每个页面上使用一次 ID,并且一开始只会选择您的一个元素。改用类。

      【讨论】:

        【解决方案3】:

        首先,具有相同id 的两个元素是无效的HTML。相反,给他们两个相同的class 属性:

        <a class="username">username1</a>
        <a class="username">username1</a>
        

        然后,使用以下 JavaScript:

        $('.username').text('username2');
        

        但是,您的代码示例与您的标题不匹配,因此这不会更改锚标记的 href,只会更改它们的文本。要更改两者的href,请致电attr,就像您在此问题的标题中所说的那样。

        【讨论】:

          猜你喜欢
          • 2011-02-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-01-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多