【问题标题】:can i append() or html() into an id attribute within a tag?我可以将 () 或 html() 附加到标签内的 id 属性中吗?
【发布时间】:2011-09-12 17:53:28
【问题描述】:

我有 jquery 从其他东西(图像)中获取 id,我想将该 id 附加到输入隐藏字段中

var imageID = $('#slides li').find('img').attr("id");

这给了我 id,我知道如果我这样做:

$("#pic-title").html(imageID);

它将附加到<div id="pic-title">(this is where the imageID value will be)</div>

但是如果我想在标签中放入一个属性呢?

<div id="(imageID value will be placed here instead)"></div>

我希望这已经足够清楚了。谢谢!

【问题讨论】:

  • 如果您正在获取一个元素的 ID 并使用它来设置另一个元素的 ID,则必须对其进行修改以使其唯一,或者删除原始元素。页面上不能有重复的 ID。
  • 我不会这样做。多个元素具有相同的 id 是非常糟糕的形式。
  • 这只是一个简单的例子。我只是想让它尽可能清楚,我肯定会修改它。谢谢你们!

标签: jquery html function append


【解决方案1】:
$("#pic-title").attr('id', imageID);

这就是你要找的。​​p>

编辑你应该厌倦这样做。您正在两个或多个 HTML 元素上创建重复的 id。这是无效的,因为 id 必须是唯一的。我怀疑大多数现代浏览器仍然能够很好地显示元素,但是您的 JavaScript 在复制 id 后可能会中断或产生意外结果。

我会通过将一些预定义的值附加到 id 来改变它:

$("#pic-title").attr('id', imageID + '_title');

或者使用类属性代替:

$("#pic-title").addClass(imageID);

【讨论】:

  • 我实际上是在使用一个类作为参考,然后将 id 用于我的 imageID。谢谢!
  • 您可以在一个 HTML 元素上拥有多个类,只要它们用空格分隔即可。 &lt;div class="something another thirdClass"&gt; 是完全有效的标记。
【解决方案2】:

你可以通过写$(something).attr('name', value)来设置属性

【讨论】:

    【解决方案3】:

    只需使用$("#old_id").attr('id', 'new_id');

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-25
      • 1970-01-01
      • 2019-03-26
      • 1970-01-01
      相关资源
      最近更新 更多