我正在尝试在字符串中的标记之间包含数据。我得到一个这种格式的字符串,我需要解析它,只得到标签中包含的内容。
var s = "Something something <details>Required data</details>";
我想获取<details>
标记
我试过
alert($('s').find('details').text());
但它只是空白输出。 正则表达式会有所帮助,但在我看来,可能有更好的方法。
我欢迎任何帮助。
谢谢。
答案 0 :(得分:4)
如果一个字符串作为参数传递给$(),jQuery会检查 字符串,看它是否看起来像HTML(即,它开始)。 如果不是,则将字符串解释为选择器表达式,如 如上所述。
似乎jQuery对你的html字符串感到困惑并将其视为选择器。如果要明确解析html,可能需要使用$.parseHTML
。
var s = "Something something <details>Required data</details>",
$s = $($.parseHTML(s)),
text = $s.filter('details').text();
console.log(text); //Required data
您还可以执行以下操作:
$('<div>').html(s).find('details').text();
答案 1 :(得分:1)
演示 1.8.2及以上:http://jsfiddle.net/SSL2q/
演示 1.7.2及以下:http://jsfiddle.net/FGpSP/
API:
parseHTML
- http://api.jquery.com/jquery.parsehtml/ 旧回复:Find element at HTML string或How to get an HTML element from a string with jQuery值得一读。
希望休息满足您的需求:)
<强>代码强>
var s = "something sometihng <details> I want this </details>";
alert("abc");
alert($(s).filter('details').text());
<强>代码强>
var s = "something sometihng <details> I want this </details>";
alert("abc");
alert($($.parseHTML(s)).filter('details').text());