获取字符串Jquery中的标记中包含的字符串

时间:2014-07-08 22:53:41

标签: javascript jquery html parsing tags

我正在尝试在字符串中的标记之间包含数据。我得到一个这种格式的字符串,我需要解析它,只得到标签中包含的内容。

var s = "Something something <details>Required data</details>";

我想获取<details>标记

之间的数据

我试过

alert($('s').find('details').text());

但它只是空白输出。 正则表达式会有所帮助,但在我看来,可能有更好的方法。

我欢迎任何帮助。

谢谢。

2 个答案:

答案 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:

旧回复:Find element at HTML stringHow 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());