Jquery element.text()错误"不是函数"当我使用元素数组

时间:2016-05-30 19:30:07

标签: javascript jquery xml

我正在阅读一个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不能将它作为元素列表取消,我该怎么办?

1 个答案:

答案 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);