这里有一个类似的线程,但是它仅处理解析仅元素的HTML字符串。
How to get an HTML element from a string with jQuery
就我而言,我有一个HTML字符串将纯文本与元素组合。
var str = 'Some text ' +
'<input type="hidden" id="hiddenField" value="3" /> ' +
'<input type="text" id="textField"/>';
我需要以下2个功能, (1)从此字符串中提取纯文本,(2)按ID提取元素。
示例:
(1)getText(str) => 'Some text ';
(2)getElement(str, id) => jQuery element variable
我打算按ID进行拆分,然后多次按<
/ >
进行拆分,然后将不同的字符串缝合在一起,但这似乎并不优雅,想知道是否有更好的方法。
答案 0 :(得分:1)
对于第一个要求,只需从字符串中删除所有html,就可以使用正则表达式来实现:
var stripedHtml = str.replace(/<[^>]+>/g, '');
console.log(stripedHtml) //Some text
对于第二个用例,只需将其解析为html元素,即可开始使用。
var el = document.createElement( 'html' );
el.innerHTML = 'Some text ' +
'<input type="hidden" id="hiddenField" value="3" /> ' +
'<input type="text" id="textField"/>';
el.getElementsByTagName( 'input' )
有关第二种情况,请参见a working example。
答案 1 :(得分:0)
var str = 'Some text ' +
'<input type="hidden" id="hiddenField" value="3" /> ' +
'<input type="text" id="textField"/>';
str2=str.split("<")
for(i = 1; i < str2.length; i++){
str2[i] = "<" + str2[i]
}
getID = document.getElementById("hiddenField")
console.log(getID)
<input type="hidden" id="hiddenField" value="3" />
<input type="text" id="textField"/>