Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 从JQuery中的单个变量中提取部分信息_Xml_Jquery_Xhtml - Fatal编程技术网

Xml 从JQuery中的单个变量中提取部分信息

Xml 从JQuery中的单个变量中提取部分信息,xml,jquery,xhtml,Xml,Jquery,Xhtml,我正在使用jquery拉入一个XML提要。问题在于,所有信息都位于单个节点下: <description><![CDATA[<div class="element element-date first"> Friday, 09 August 2013</div> <div class="element element-textarea"> <p>CES MMA Champion Mike "The Beas

我正在使用jquery拉入一个XML提要。问题在于,所有信息都位于单个节点下:

    <description><![CDATA[<div class="element element-date first">
    Friday, 09 August 2013</div>
<div class="element element-textarea">
    <p>CES MMA Champion Mike "The Beast" Campbell (13-4, Providence, RI.), Dinis "Sweetbread" Paiva (E. Providence, RI.), Keith "Sonic Boom" Jeffrey (9-2, Pawtucket, RI.) and more!</p></div>
<div class="element element-link last">
    <a href="http://www.ticketmaster.com/ces-mma-presents-live-cagefighting-lincoln-rhode-island-08-09-2013/event/01004ACBB23C9DC4?artistid=1765605&majorcatid=10004&minorcatid=830" title="Click here to buy tickets!" target="_blank" >Click here to buy tickets!</a></div>]]></description>
我添加了
var-eDate=[]和其余声明的变量

我试图获取的信息没有包装在标签中,这会导致问题吗?
如果是这样的话,是否有必要添加它们?我不认为我真的可以编辑传入的数据格式,但我也会将此作为一个选项进行研究。

您的选择器应该是这样的-

var $divElements = $('.element.element-date.first');

这样,您就不需要编写自己的循环,(请参阅)您遇到的另一个问题是,当您看到class=“class1 class2 class3”时,您在jQuery和CSS中使用了。在每个类之前(因为class属性中由空格分隔的值在功能上是不同的CSS类)。

将选择器传递给
find
,而不是jQuery对象

var divSelector = '.element.element-date.first';
...
        for (var x = 0; t <= i; x++) {
            alert($(desc[t]).find(divSelector).text());//try also $.parseHTML(desc[t])
        }
var-divSelector='.element.element-date.first';
...

对于(var x=0;t而言,主要问题在于您感兴趣的内容实际上包装在CDATA节中,因此这些节点的dom树中没有层次结构,而只有一个节点表示CDATA中的整个文本。 此外,CDATA中的内容没有自己的根,因此在传递到jquery时不会计算为xml结构,这一事实使它变得更加复杂

一个简单的解决方案是从

desc[i]=$(this).find('description').text();

像这样:

desc[i]=“”+$(this).find('description').text()+“”;

将for循环表达式修复为后,警报将正确显示日期

for(var t=0;t

并将选择器替换为普通选择器

var divElements='.element.element日期.first';

可能还有其他更好的解决方案,但我测试了这个,它是有效的

更新:觉得代码需要一些清理。没有理由让所有这些数组都四处浮动,再进行一点重构

$(document).ready(function () {
    $.ajax({
    type: "GET",
    url: "http://twinriver.com/index.php/entertainment/twin-river-event-center/feed/rss/events/event-center?format=feed",
    dataType: "xml",
    success: function (xml) {
      $(xml).find('item').each(function () {
            var title = $(this).find('title').text();
            var desc = "<rootnode>" + $(this).find('description').text() + "</rootnode>";
            var date = $(desc).find('.element.element-date.first').text()
            $('#EventList').append('<span class="title">' + title + '</span>' + '<br />' + '<br />' + '<span>' + date + '<br />' + '<br />');
            });
        }
    });
});
$(文档).ready(函数(){
$.ajax({
键入:“获取”,
url:“http://twinriver.com/index.php/entertainment/twin-river-event-center/feed/rss/events/event-center?format=feed",
数据类型:“xml”,
成功:函数(xml){
$(xml).find('item').each(函数(){
var title=$(this.find('title').text();
var desc=“”+$(this.find('description').text()+”;
var date=$(desc.find('.element.element-date.first').text()
$(“#事件列表”).append(“”+title++'
'++'
'++'
'++'+date++'
'++'
'); }); } }); });
我该如何调用desc[]var,因为这是存储信息的地方?啊,我误解了你的代码,Boris的回答包括了我错过的关键位!
var $divElements = $('.element.element-date.first');
$('.element.element-date.first').each(function() {
  $(this).text(); // In each iteration this will get you the date
});
var divSelector = '.element.element-date.first';
...
        for (var x = 0; t <= i; x++) {
            alert($(desc[t]).find(divSelector).text());//try also $.parseHTML(desc[t])
        }
$(document).ready(function () {
    $.ajax({
    type: "GET",
    url: "http://twinriver.com/index.php/entertainment/twin-river-event-center/feed/rss/events/event-center?format=feed",
    dataType: "xml",
    success: function (xml) {
      $(xml).find('item').each(function () {
            var title = $(this).find('title').text();
            var desc = "<rootnode>" + $(this).find('description').text() + "</rootnode>";
            var date = $(desc).find('.element.element-date.first').text()
            $('#EventList').append('<span class="title">' + title + '</span>' + '<br />' + '<br />' + '<span>' + date + '<br />' + '<br />');
            });
        }
    });
});