从包含HTML的字符串中提取文本和特定元素

时间:2019-05-13 15:06:47

标签: jquery html

这里有一个类似的线程,但是它仅处理解析仅元素的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进行拆分,然后多次按< / >进行拆分,然后将不同的字符串缝合在一起,但这似乎并不优雅,想知道是否有更好的方法。

2 个答案:

答案 0 :(得分:1)

对于第一个要求,只需从字符串中删除所有html,就可以使用正则表达式来实现:

var stripedHtml = str.replace(/<[^>]+>/g, '');
console.log(stripedHtml) //Some text 

这里是a working example

对于第二个用例,只需将其解析为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"/>

相关问题