我有一个用HTML编写的列表:
<p>
1 - hello
2 - yo
3 - sup
</p>
我想替换数字[1-20] ,然后是空格[] ,后跟连字符[ - ] 和{ {1}}使用Jquery。
我相信它是这样的? (显然在"<p class='answer'>"
里面只是在解释我在寻找的东西):
.find
答案 0 :(得分:1)
这是一个干净的(*)解决方案。
$("p:not(:has(*))").each(function () {
var txt = $(this).text(),
linePattern = /^\s*(\d+) - (.*)/gm,
line, paragraphs = [];
if (linePattern.test(txt)) {
linePattern.lastIndex = 0;
while (line = linePattern.exec(txt)) {
paragraphs.push( $("<p>", {text: '"' + line[2] + '"'}) );
}
$(this).replaceWith(paragraphs);
}
});
(*)“清理”如:DOM-aware和XSS-safe,直接且可维护。
转换
<p>
1 - hello
2 - yo
3 - sup
</p>
到
<p>"hello"</p><p>"yo"</p><p>"sup"</p>
答案 1 :(得分:0)
试试这个
var htmlstr = $('p').html();
var splitstr = htmlstr.split('-') ;
var toreplace = splitstr[0];
var replacewith = ""<p class='answer'>"";
splitstr.replace(toreplace,replacewith )