我有像这样的列表元素
<ol class="listItem">
<li id="#item-1" class="NewsFeedItem">
<a href="someurl.com" class="threadLink">Example Url</a>
<div class="attachedImage"></div>
</li>
<li id="#item-2" class="NewsFeedItem">
<a href="someurl2.com" class="threadLink">Example Url 2</a>
<div class="attachedImage"></div>
</li>
<li id="#item-3" class="NewsFeedItem">
<a href="someurl3.com" class="threadLink">Example Url 3</a>
<div class="attachedImage"></div>
</li>
...
</ol>
我只想使用一个脚本来加载每个li
的内容。我在这里写了一些代码,但它没有工作
$('.NewsFeedItem').each(function() {
var id = $(this).get(0).id;
$('#' + id + '.attachedImage').load( $('#' + id + '.threadLink').attr('href') + ' .firstPost .messageText img' );
});
我哪里错了?
答案 0 :(得分:2)
你的代码很好,除了两点。要选择后代,您需要用一个空格分隔选择器,这是您在这一行中缺少的:
$('#' + id + ' .attachedImage').load( $('#' + id + ' .threadLink').attr('href') ...
#id.attachedImage
这样的选择器会查找ID为id
的元素,并为其分配一个类attachedImage
。
如果要选择一个元素,为其分配一个类attachedImage
,并且该元素是ID id
元素的后代,则需要将选择器编写为{{1} }。
修改1:
由于ID中的值已经有#id .attachedImage
,因此您还需要从选择器中移除#
:
#
答案 1 :(得分:0)
只需删除'#'
$( id + '.attachedImage').load( $( id + '.threadLink').attr('href') + '.firstPost .messageText img' );