【发布时间】:2021-01-02 10:37:45
【问题描述】:
我正在尝试获取背景图片的 URL。背景图片在 a href 标记中。
一个href标签,style="background-img:url("")"
我正在使用cheerio(类似于Jquery 的node.js 模块)。当我试图得到 它给了我错误,
TypeError: Cannot Read Property "replace" for undefined
我的代码是:
$("div.listing.listing-blog.listing-blog-1.clearfix.columns-1.columns-1 > article > .item-inner .featured.clearfix a").map(function () {
let imgURL = $(this).css("background-image");
imgURL = imgURL.replace(/.*\s?url\([\'\"]?/, '').replace(/[\'\"]?\).*/, '');
return { imgURL };
}).get();
这是需要背景图片URL的元素:
<article class="post-431236 type-post format-standard has-post-thumbnail listing-item listing-item-blog listing-item-blog-1 main-term-51 bsw-5 ">
<div class="item-inner clearfix">
<h2 class="title"> <a href="https://arynews.tv/en/nab-money-laundering-reference-shehbaz-sharif/" class="post-url post-title">
POST TITLE </a>
</h2>
<div class="featured clearfix">
<a alt="nab, shehbaz sharif, pml-n, benami assets" title="NAB prepares money-laundering reference against Shehbaz Sharif: sources" data-bs-srcset="{"baseurl":"https:\/\/arynews.tv\/wp-content\/uploads\/2020\/09\/","sizes":{"210":"shehbaz-1-1-210x136.jpg","279":"shehbaz-1-1-279x220.jpg","357":"shehbaz-1-1-357x210.jpg","750":"shehbaz-1-1.jpg"}}" class="img-holder b-loaded" href="https://arynews.tv/en/nab-money-laundering-reference-shehbaz-sharif/" style="background-image: url("https://arynews.tv/wp-content/uploads/2020/09/shehbaz-1-1-279x220.jpg");"></a>
</div>
【问题讨论】:
-
jQuery 没有问题所以你确定选择器是对的吗?你能告诉我们元素的 CSS 吗?
-
cannot read property for undefined - 只需添加一个子句,例如
let imgURL = $(this).css("background-image") || ""; -
我正在使用 Cheerio,它类似于 Jquery。但我得到了未定义。
标签: javascript html jquery node.js cheerio