繁体   English   中英

从JSON提取HTML标签之间的值

[英]Extract value between HTML tags from JSON

我有问题 我试着知道该怎么做,但是...什么也没有...我做错了什么,我也不知道...

我对JSON有ajax请求。

我收到一些带有值的属性。 其中之一是内部带有HTML:

"<p>Title</p>
<p>Category</p>
<p>First p.</p>
<p>Second p.</p>"

我想在另一个变量中获取“标题”,并在另一个变量中获取“类别”。 另一个变量中的“第一个p”和“第二个p”。

我做了这样的事情,但是什么也没发生。

tTitle = $(textThumb).find("p:nth-child(0)").html();
tCat = $(textThumb).find("p:nth-child(1)").html();
tText = $(textThumb).remove("p:nth-child(0)","p:nth-child(1)").html();

所有这些都变得不确定。

如果我打印textThumb并且其他参数的其他值也可以,这就是我不知道如何考虑的问题

谢谢,。

尝试这样的事情:

var $p = $(textThumb).filter("p"),
    tTitle = $p.eq(0).text(),
    tCat = $p.eq(1).text();

最主要的是使用.filter()而不是.find()因为后者查找的是后代元素,但您想要的元素在顶层。

“另一个变量中的“第一个p”和“第二个p”。

如果您想将这两个段落中的文本都放入同一个变量中,则可以:

var tText = $p.slice(2).text();

演示: http//jsfiddle.net/g39Gm/

var tree = $(textThumb);
tTitle = tree[0].innerText;
tCat = tree[1].innerText;
tText = tree[2].innerText + tree[3].innerText

除了返回带有html作为值的JSON之外,可能还有其他更好的方法进行操作-也就是说,您需要做的是将一个带有一个父节点的字符串放入jQuery选择器。

$('<div><p>Hi</p><p>Hi Again</p></div>').find('p').eq(0).text() // 'Hi!'

或使用nth-child()选择器(应从1开始)

$('<div><p>Hi</p><p>Hi Again</p></div>').find('p:nth-child(1)').text() // 'Hi!'

在您的情况下$('<div>'+textThumb+'</div>') ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM