我想要做的是为我使用的这个论坛的每个线程插入一个链接和img。链接的 href 应基于该元素的子元素的 href。 这是 HTML 的部分 View ,为了清晰起见,我删除了一些内容,如果我删除了太多内容,请告诉我。最后一个标签重复 20 次左右,具体取决于首选项中可见的线程数
<div id="content">
<form id="page_form">
<div id="forums">
<table class="grid forumtable">
<tr></tr>
<tr></tr>
<tr>
<td></td>
<td></td>
<td></td>
<td>
<div class="lastposter">
<a></a>
<a href="view/1234/?page=last#845612"><img></img></a>
</div>
</td>
</tr>
<tr> ...same as above.. x20 </tr>
</table>
</div>
</form>
</div>
这是到目前为止我的代码,它通过插入静态链接来工作。我想要的是使用上一个链接中 # 后面的值的链接。
var lastpst = document.getElementsByClassName('lastposter');
for (var i=0; i < lastpst.length; i++){
links = document.createElement('a');
links.setAttribute('href','we.html');
links.innerHTML ='<a href="we.html"><img src="/static/img/silk/zoom.png" /></a>';
lastpst[i].appendChild(links);
}
那么我如何从lastpst[i]访问a标签并使用href创建我自己的链接?
我认为可以使用 XPATH 来编写此内容,但我无法完全理解它。在这种情况下这是一个好主意吗?
很抱歉问了一个冗长的问题。
最佳答案
根据你自己的回答,你应该自己处理 DOM 操作,而不是将其插入到另一个标签中。另外,将 A 标签放在 A 标签中可能不是一个好主意。
var lastpst = document.getElementsByClassName('lastposter');
for (var i=0; i < lastpst.length; i++){
l = lastpst[i].getElementsByTagName('a');
ln = l[1].getAttribute('href');
ln = ln.replace(/(?:.*?)#([0-9]{6})/,'/post/view/$1');
links = document.createElement('a');
links.href = ln;
img = document.createElement('img');
img.src = "/static/img/silk/zoom.png"
links.appendChild(img);
lastpst[i].appendChild(links);
}
关于javascript - 插入带有来自另一个链接的文本的链接 Greymonkey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1702842/