2014-07-08 43 views
2

我想获取数据之间的标签之间的字符串。我得到这样一种格式的字符串,我需要解析它才能得到标签中包含的内容。获取字符串中的标签中包含的字符串jquery

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

我想那是<details>标签

之间封闭的数据我想

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

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

我会很乐意提供任何帮助。

谢谢。

回答

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()); 
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(); 
+0

注:$ .parseHTML()需要的jQuery 1.8 + – Oliboy50

+0

@ Oliboy50新增替代。 – plalx

+0

不错的工作,其实我更喜欢替代 – Oliboy50

相关问题