我正在阅读一个XML文件,其中我有一些p标签,我希望得到每个元素文本" element.find()"。但我得到了这个错误" .text不是一个函数"。
这是我使用的代码:
$.ajax({
type: 'GET',
url: YQLurl,
data: {
key: "value"
},
dataType: "xml",
success: function (reciviedXml){
for(var i = 0 ; i < $(reciviedXml).find('p').length;i++)
{
var paragraph= $(reciviedXml).find('p')[i].text();
}
});
我认为我的数组不是一个元素数组,或者至少jquery不能将它作为元素列表取消,我该怎么办?
答案 0 :(得分:5)
这显然不起作用,因为$(reciviedXml).find('p')[i]
将返回原生DOM Element
并且text
的界面上没有Element
方法。如果你执行$(reciviedXml).find('p')[i].textContent;
,你的代码应该可以工作,尽管效率极低。
这是一个更好的方法:
$(reciviedXml).find('p').each(function () {
var paragraph = $(this).text();
//do something useful with paragraph
console.log(paragraph);
});
我只想要第3个标签文本,它会给我错误
您也可以$(reciviedXml).find('p:nth-child(3)').text()
直接获取第三段的文字。
您可能根本不使用jQuery:
var htmlString = '<p>1</p><p>2</p><p>3</p>';
var text = new DOMParser()
.parseFromString(htmlString, 'text/html')
.querySelector('p:nth-child(3)')
.textContent;
alert(text);