我有以下标记
<div class = "general">
<a href = "#world"></a>
<div id ="custom"></div>
</div>
如何使用jQuery从id = "custom"
页面<div>
更改所有class="general"
中的href
?
答案 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()