我的HTML页面底部出现了一些搜索结果,我想抓住这些结果中出现的每个li
元素的一些内容:
<ul id="hits">
<li class="hit">
<a href="#" class="image" style="background-image: url('http://...')"></a>
<div class="anotherclass">
<h5 class="title"> Here is a title </h5>
<p> Here is some paragraph text </p>
</div>
</li>
<li>...</li>
</ul>
我需要每个li
中的这两个元素(按此顺序):
h5
标记内的文字(即“这是标题”),a
标记内显示为属性的图像路径(即,background-image: url()
)到目前为止,这是我的解决方案,但没有运气:
$(".hit").each(function() {
let title = $(this).find("title").innerHTML;
let img = $(this).find("image").attr("style");
});
我也不确定如何获取style
属性中的URL,但也许这是另一个SO问题。
答案 0 :(得分:1)
你的解决方案足够接近。由于title
和image
是类,因此您需要添加.
。其次,要获得h5
,您应该使用text()
代替innerHTML
:
$(".hit").each(function() {
let title = $(this).find(".title").text();
let img = $(this).find(".image").attr("style");
console.log(title)
console.log(img)
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="hits">
<li class="hit">
<a href="#" class="image" style="background-image: url('http://...')"></a>
<div class="anotherclass">
<h5 class="title"> Here is a title </h5>
<p> Here is some paragraph text </p>
</div>
</li>
</ul>
&#13;
答案 1 :(得分:1)
首先您缺少.
,.find(".title")
,.find(".image")
第二个是从h5
使用.text()
而非innerHTML
<强>演示强>
$(".hit").each(function() {
let title = $(this).find(".title").text();
console.log(title)
let img = $(this).find(".image").attr("style");
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="hits">
<li class="hit">
<a href="#" class="image" style="background-image: url('http://...')"></a>
<div class="anotherclass">
<h5 class="title"> Here is a title </h5>
<p> Here is some paragraph text </p>
</div>
</li>
<li>...</li>
</ul>
&#13;
答案 2 :(得分:1)
$(".hit").each(function() {
let title = $(this).find(".title").text();
let img = $(this).find(".image").css('background-image');
});
我认为你的意思是使用课程。