jQuery - 从解析的xml feed中获取第一个图像(内容:编码)

时间:2016-10-11 21:11:40

标签: jquery xml-parsing

我可以使用以下代码搜索XML Feed

    $mcontent = $(this).find('encoded').text();
    console.log('source: ' + $mcontent.match(/<img[^>]*>/g));

对于此循环中的每个项目,我可以访问我的内容:带有以下行的编码元素并查看结果...

<p><img src="...">, <img src="...">, <img src="..."></p>

...其中包含多个以逗号分隔的图像......

    $mcontent = $(this).find('encoded').text();
    $mcontent = $mcontent.match(/<img[^>]*>/g).split(',')[0];
    console.log('source: ' + $mcontent);

如何才能获得第一个图像元素,并将其存储到$ mImage变量中?

谢谢!

更新

当我尝试执行以下操作时......

Uncaught TypeError: $mcontent.match(...).split is not a function

浏览器告诉我......

decode_entities('&#174;');  # returns ® as expected
decode_entities('&#8486;'); # returns Ω instead of Ω
decode_entities('&#9733;'); # returns ★ instead of ★

..我不知道为什么......

1 个答案:

答案 0 :(得分:2)

如果您的文字是:

<p><img src="...">, <img src="...">, <img src="..."></p>

你可以使用:

var str = '<p><img src="...">, <img src="...">, <img src="..."></p>';
var firstImg = $($.parseHTML(str)[0]).find('img:first');
  

未捕获的TypeError:$ mcontent.match(...)。split不是函数

这是因为“$ mcontent.match(/ \ n &gt; / g)”*会返回一个img数组,这就足以让你得到第一个ele:

摘录:

var str = '<p><img src="...">, <img src="...">, <img src="..."></p>';
var firstImg = $($.parseHTML(str)[0]).find('img:first');

console.log(firstImg[0].outerHTML);



var t = str.match(/<img[^>]*>/g)[0];

console.log(t);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>