我在使用Jquery选择元素时遇到了一些问题。 当我尝试选择一个元素时:
var images = $("#htmlChunk").find("img.Thumb");
console.log(images);
我得到了这个结果:
>[<img>, <img>, prevObject: e.fn.e.init[1], context: #document, selector: "#htmlChunk img.Thumb"]
导致此返回结果的原因是什么? 我尝试了一些东西,但仍然没有得到我想要的结果。
我试图包装代码以避免冲突。 我试图清除对象
这是我在网上找到的东西。 http://drupal.org/node/272557
var images = $("#htmlChunk")['prevObject'].find("img.Thumb");
我现在回来了一个物体, 但那也不是我想要的。
我跳进了这个项目,所以我对脚本并不熟悉。 我试图在js文件中搜索prevObject但却找不到。
我认为问题在于它干扰了其他一些javascript文件。 有任何想法吗?方向?
编辑: htmlChunk:
<div id="htmlChunk">
<div class="ngg-albumoverview">
<div class="ngg-album-compact">
<div class="ngg-album-compactbox">
<div class="ngg-album-link">
<a class="Link" href="http://........">
<img class="Thumb" alt="Personeelsevent" src="http://.........">
</a>
</div>
</div>
<h4><a class="ngg-album-desc" title="Personeelsevent" href="http://.....">Personeelsevent</a></h4>
<p><a href="http:///.......">bekijk dit album</a></p>
</div>
</div>
</div>
答案 0 :(得分:45)
您的images
变量是一个jQuery对象,因此您在浏览器控制台中看到的输出似乎就是该对象。具体输出表明对.find()
的调用实际上并不匹配任何元素;比较this jsFiddle的两个控制台输出(在Chrome中)。
当你调用一个jQuery函数 - 比如.find()
,.filter()
等 - 缩小或改变现有jQuery对象上匹配元素的列表时,生成的jQuery对象也包含一个引用该函数运行之前的状态,这是您prevObject
所看到的。这是您在调用.end()
函数时恢复使用的内容。
让我们分解你的代码:
var images = $(".htmlChunk").find("img.Thumb");
第一部分 - $(".htmlChunk")
- 匹配所有具有类htmlChunk
的元素,并返回包含这些元素的jQuery对象。
然后调用.find("img.Thumb")
,它查找已经匹配的元素(具有类htmlChunk
的元素)的后代的所有元素,这些元素满足<img>
元素的条件并具有他们的班级Thumb
。
您可以使用单个选择器来检索元素,这可能会给您带来更好的结果:
var images = $(".htmlChunk img.Thumb");
如果你想要一个实际DOM元素的数组,而不是一个包含它们的jQuery对象,你可以使用.get()
函数:
var elementArray = images.get();
解决问题的编辑以包含HTML:
您正在使用$(".htmlChunk")
获取初始元素。但是,<div>
元素具有 ID ,而不是htmlChunk
的类,因此代码不会选择您需要的元素。您将要使用以下内容:
var images = $("#htmlChunk").find("img.Thumb");
请注意#
而不是选择器中的.
。
答案 1 :(得分:3)
看起来你试图选择类“.htmlChunk”,但不存在。尝试通过id选择。
var images = $("#htmlChunk").find("img.Thumb");
答案 2 :(得分:-1)
试试这个。
function getId() {
var ids = $(".htmlChunk").find("img.thumb"); //it wiill return array of image
var sid = $(".htmlChunk").find("img#img2"); //it wiill return wat image you want
$(".htmlChunk span").text("arrays:" + ids[0] + " : " + ids[1] +
"simple imge:" + sid);
}
<input id="Button1" type="button" value="button" onclick= "getId();"/>
<div class="htmlChunk">
<img alt="" src="img/Desert.jpg" class="thumb" id="img1" />
<img alt="" src="img/Chrysanthemum.jpg" class="thumb" id="img2" />
<span></span>
</div>
答案 3 :(得分:-2)
不是prevObject只是结果的属性吗?
您可以将其理解为“结果具有以下prevObject - &gt;”