替换字符串的特定标记

时间:2014-08-19 18:47:57

标签: javascript jquery html regex

我有这个JS字符串:

"<div>
  <p id='foo'>foo text</p>
  <p id='bar'>bar text</p>
  <p id='sol'>sol text</p>
</div>"

我想只更换段落ID&#39; bar&#39;并使用新修改返回所有字符串。我怎么能这样做?我知道我可以使用正则表达式,但如果我能避免它,我认为会更好......

我试图将字符串转换为这样的DOM对象:

var str = "<div><p id='foo'>foo text</p><p id='bar'>bar text</p><p id='sol'>sol text</p></div>"

然后,

var dom_str = $(str);

但是我不知道如何选择条形码并返回所有字符串。

我想得到的输出如下例所示:

var result = "<div><p id='foo'>foo text</p><p id='bar'>new text here</p><p id='sol'>sol text</p></div>"

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

jQuery object上的

(它不是dom元素)$obj.find('#bar').text('new text here')

var str = "<div><p id='foo'>foo text</p><p id='bar'>bar text</p><p id='sol'>sol text</p></div>"
var $obj = $(str);
$obj.find('#bar').text('new text here')

注意:最好将解析保存在变量$obj中,因为如果您需要更多关于该对象的工作,则不必每次都解析它时间。

答案 1 :(得分:2)

试试这个:

var str = "<div><p id='foo'>foo text</p><p id='bar'>bar text</p><p id='sol'>sol text</p></div>",
    el = document.createElement('div');
el.innerHTML = str;
el.querySelector('#bar').textContent = "new text here";
var result = el.innerHTML;