使用jQuery,我如何将“章节标题”移到“1.1”旁边,以便它读取......“1.1章节标题”,同时保留其他所有内容?
<p>
1.1
<a name="_Toc159407685"></a>
<a name="_Toc161121797"></a>
<a name="_Toc208282996"></a>
<a name="_Toc315779471"></a>
<a href="link.jpg">
<img class="img" alt="" src="link.jpg">
</a>
Chapter Title
</p>
答案 0 :(得分:6)
答案 1 :(得分:2)
我建议使用简单的JavaScript方法:
function moveTitle(el) {
if (!el) {
return false;
}
else {
var titleNode = el.lastChild,
title = document.createTextNode(titleNode.nodeValue.trim()),
number = el.firstChild;
el.removeChild(titleNode);
el.insertBefore(title, number.nextSibling);
}
}
moveTitle(document.getElementsByTagName('p')[0]);
虽然这确实做了一些假设:
textNode
和这些假设当然可以改变或适应;但是根据你声明的要求,它应该足以满足你的用例。
答案 2 :(得分:1)
你可以这样做:
$('p:contains("1.1")').each(function(){
var text = $(this).text();
txt = text.replace(new RegExp("chapter title", "g"), '');
txt = text.replace(new RegExp("1.1", "g"), '1.1 chapter title');
$(this).html(txt);
});