【问题标题】:jQuery - Get the first image from parsed xml feed (content:encoded)jQuery - 从解析的 xml 提要中获取第一张图片(内容:编码)
【发布时间】:2017-02-20 13:25:34
【问题描述】:

我可以使用以下代码搜索 XML 提要

$($xml).find('item').each(function(i, e) { ... }

对于此循环中的每个项目,我可以使用以下几行访问我的 content:encoded 元素并查看结果...

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

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

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

如何仅获取第一个图像元素,然后将其存储到 $mImage 变量中?

谢谢!

更新:

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

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

浏览器告诉我...

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

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

【问题讨论】:

  • "your-image,string, here".split(',')[0] 会给你第一张图片作为字符串。
  • 我上面还有一个问题,在尝试实现这一点时......我也忘记了我原来的问题中的一个元素......
  • 感谢 axel 关于拆分的提醒

标签: jquery xml-parsing


【解决方案1】:

如果你的文字是:

<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');

未捕获的类型错误:$mcontent.match(...).split 不是函数

发生这种情况是因为 "$mcontent.match(/]>/g)"* 返回一个 img 数组,而你得到第一个 ele 就足够了:

sn-p:

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);
&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-21
    • 2015-05-05
    • 1970-01-01
    • 2014-08-24
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    相关资源
    最近更新 更多