我所拥有的HTML类似于以下内容:
<div id="container">
<ul>
<li>
<div class="oneClass">
<img src="http:image.jpg">
</div>
<div class="anotherClass" id="oneID">
<div class="twoClass" id="randomID">
<cite class="user">
<a href="http://someURL" >Name</a>
</cite>
<span class="icon user"></span>
<span class="threeClass">
<a href="http:URL#oneID">some text</a>
</span>
</div>
<p class="content" id="randomID">some words content</p>
</div>
</li>
<li>
<div class="oneClass">
<img src="http:image.jpg">
</div>
<div class="anotherClass" id="anotherID">
<div class="twoClass" id="randomID">
<cite class="user">
<a href="http://someURL" >Name</a>
</cite>
<span class="icon user"></span>
<span class="threeClass">
<a href="http:URL#anotherID">some text</a>
</span>
</div>
<p class="content" id="randomID">some words content</p>
</div>
</li>
</ul>
</div>
我需要的是找到一种方法来检测oneClass之后的下一个ID并用于在oneClass周围创建另一个div。 例如:
<div id="container">
<ul>
<li>
<div id="myName_oneID">
<div class="oneClass">
<img src="http:image.jpg">
</div>
</div>
<div class="anotherClass" id="oneID">
<div class="twoClass" id="randomID">
<cite class="user">
<a href="http://someURL" >Name</a>
</cite>
<span class="threeClass">
<a href="http:URL#oneID">some text</a>
</span>
</div>
<p class="content" id="randomID">
some words content
</p>
</div>
</li>
<li>
<div id="myName_anotherID">
<div class="oneClass">
<img src="http:image.jpg">
</div>
</div>
<div class="anotherClass" id="anotherID">
<div class="twoClass" id="randomID">
<cite class="user">
<a href="http://someURL" >Name</a>
</cite>
<span class="threeClass">
<a href="http:URL#anotherID">some text</a>
</span>
</div>
<p class="content" id="randomID">
some words content
</p>
</div>
</li>
</ul>
</div>
我试图从锚中得到它:
$(".threeClass a").map(function () {
var myID ="myName_" + this.hash.replace(/#/, '');
//alert(myID);
$(".oneClass").each(function () {
$(this).wrap("<div id='" + myID + "' />");
});
});
如果我测试警报(myID),它会正确检测到,但是当我尝试使用它来包装新的div时,它会为所有oneClass创建相同的Id。
可以吗?
我是javascript或Jquery的新手,并以正确的方式欣赏帮助或指导。
谢谢。
答案 0 :(得分:2)
试试这个
$('.oneClass').each(function(){
id=$(this).next().attr('id');
$(this).wrap('<div></div>').parent().attr('id', 'myName_'+id);
});
DEMO(见来源)。