要编辑的示例页面:
reply link
post
reply link
post
reply link
post
我希望每个帖子都能复制回复链接并附加到帖子中。然后我删除回复链接。
var elements = document.getElementsByClassName('postMessage');
for (var n = elements.length; n--> 0;)
{
var elementi = $(".replylink" ).clone();
elements[n].innerHTML += elementi;
}
这不会起作用
答案 0 :(得分:0)
elements[n].innerHTML+=elementi;
是 text 操作。您最终会在页面上显示[object Object]
。
听起来你想要移动回复链接。如果是这样,只需使用jQuery的append
(如果元素已经在页面的其他位置,它将移动该元素):
$(".postMessage").each(function() {
var $this = $(this);
var replylink = $this.prevAll(".replylink").first();
$this.append(replylink);
});
棘手的位是$this.prevAll(".replylink").first()
,它执行此操作:
.replylink
元素的所有.postMessage
个元素的列表。.postMessage
的那个。完整示例:Live Copy | Live Source
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<meta charset=utf-8 />
<title>Example</title>
<style>
.postMessage {
border: 1px solid black;
}
</style>
</head>
<body>
<p>In a second, the reply links will move <em>into</em> the posts.</p>
<a href="#" class="replylink">reply 1</a>
<div class="postMessage">I'm post 1 </div>
<a href="#" class="replylink">reply 2</a>
<div class="postMessage">I'm post 2 </div>
<a href="#" class="replylink">reply 3</a>
<div class="postMessage">I'm post 3 </div>
<script>
setTimeout(function() {
$(".postMessage").each(function() {
var $this = $(this);
var replylink = $this.prevAll(".replylink").first();
$this.append(replylink);
});
}, 1000);
</script>
</body>
</html>