如何从href替换所有id?

时间:2015-12-23 02:10:33

标签: javascript jquery

我有以下标记

<div class = "general">
  <a href = "#world"></a>
  <div id ="custom"></div>
</div>

如何使用jQuery从id = "custom"页面<div>更改所有class="general"中的href

2 个答案:

答案 0 :(得分:2)

你可以试试这个:

$("div.general").each(function() {
    $(this).children("div#custom").text($(this).children("a").attr("href"));
});

如果我理解正确,您希望遍历所有div.general,并将每个孩子div#custom的文字更改为孩子href的{​​{1}}。

请参阅JSfiddle上的工作示例。

另外,另一个提示是避免使用具有相同a的多个元素。在您的代码中,您有id <div>。您还说id="custom"多次出现 - 因此,div.general“自定义”会多次出现。 This is bad practice。我建议您将id更改为id

答案 1 :(得分:1)

你需要遍历所有div.general并将div#custom的id属性替换为锚点href属性。以下代码将起作用:

$(".general").each(function(){
    $(this).find("#custom").attr("id", $(this).find("a").attr("href").replace("#", ""));
})

这里.find()将挖掘父元素内任何深度的元素。如果您确定元素的DOM位置,可以将.find()更改为.children()