我有这个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>"
非常感谢任何帮助。
答案 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;