我有评论块,它是带有回复的子块。两者都有信息块,其中包含指向用户个人资料的链接和带有用户名的文本值。我创建链接以向用户发送私人消息,但只有在我用数组中的数字标记它时它才有效。
这是html标记:
<div class="comments_list">
<div class="comment_item">
<div class="comment_body">
<div class="info">
<a href="http://test.com/users/test/" class="username">Test</a>
</div>
<p>Some parent text</p>
</div>
<div class="reply_comments">
<div class="comment_body">
<div class="info">
<a href="http://test.com/users/fred/" class="username">Fred</a>
</div>
<p>Some child text</p>
</div>
</div>
</div>
<div class="comment_item">
<div class="comment_body">
<div class="info">
<a href="http://test.com/users/ken/" class="username">Ken</a>
</div>
<p>Another parent text</p>
</div>
<div class="reply_comments">
<div class="comment_body">
<div class="info">
<a href="http://test.com/users/jack/" class="username">Jack</a>
</div>
<p>Another child text</p>
</div>
</div>
</div>
</div>
这是代码:
var infobars = document.querySelectorAll('.info');
var usernames = document.querySelectorAll('.info > .username');
function clickPm(event) {
event.preventDefault();
alert(window.location.pathname = '/conversation/' + usernames[1].innerHTML);
//alert here to show that username passed properly
}
var newContainer = document.createElement('span');
newContainer.className = 'container';
var newBtn = document.createElement('a');
newBtn.className = 'pmlink';
newBtn.appendChild(document.createTextNode('send message'));
newBtn.href="#";
newBtn.onclick = clickPm;
newContainer.appendChild(newBtn);
infobars[1].appendChild(newBtn);
抱歉我的 JavaScript 知识不好和新手问题。
希望你能帮助我在没有 jQuery 或其他的纯 JavaScript 中解决它。 JsFiddle 上的演示