Селектор jQuery возвращает prevObject вместо обычного элемента
У меня есть некоторые проблемы с выбором элементов, с 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");
Теперь я возвращаю объект,
но это также не то, что я хотел.
Я прыгнул в этот проект, поэтому я не известен с помощью script.
Я попытался найти prevObject в файлах js, но не смог найти.
Я думаю, проблема в том, что она мешает другому файлу 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="#" onclick="location.href='http://........'; return false;">
<img class="Thumb" alt="Personeelsevent" src="http://.........">
</a>
</div>
</div>
<h4><a class="ngg-album-desc" title="Personeelsevent" href="#" onclick="location.href='http://.....'; return false;">Personeelsevent</a></h4>
<p><a href="#" onclick="location.href='http:///.......'; return false;">bekijk dit album</a></p>
</div>
</div>
</div>
Ответы
Ответ 1
Ваша переменная images
является объектом jQuery, поэтому то, что вы видите вывод в консоли браузера, похоже, является этим объектом. Конкретный вывод показывает, что вызов .find()
фактически не соответствует любым элементам; сравните два выхода консоли с этого jsFiddle (в Chrome).
Когда вы вызываете функцию jQuery, такую как .find()
, .filter()
и т.д., которая сужает или изменяет список совпадающих элементов в существующем объекте jQuery, результирующий объект jQuery также содержит ссылку на состояние перед тем, как эта функция была запущена, что вы видите как prevObject
. Это то, что он использует, чтобы вернуться обратно, когда вы вызываете функцию .end()
.
Позвольте сломать ваш код:
var images = $(".htmlChunk").find("img.Thumb");
Первая часть - $(".htmlChunk")
- соответствует всем элементам, которые имеют класс htmlChunk
на них, и возвращает объект jQuery, содержащий эти элементы.
Затем вы вызываете .find("img.Thumb")
, который ищет все элементы, которые являются потомками уже согласованных элементов (те, у которых есть класс htmlChunk
), которые удовлетворяют критериям элемента <img>
и имеют класс Thumb
on их.
Вы можете использовать один селектор для извлечения элементов, что может дать лучшие результаты:
var images = $(".htmlChunk img.Thumb");
Если вам нужен массив фактических элементов DOM, а не объект jQuery, содержащий их, вы можете использовать функцию .get()
:
var elementArray = images.get();
Чтобы перейти к редактированию вопроса, чтобы включить HTML:
Вы используете $(".htmlChunk")
для получения начального элемента. Однако этот элемент <div>
имеет ID, а не класс, htmlChunk
, поэтому код не будет выбирать нужный элемент. Вы захотите использовать следующее:
var images = $("#htmlChunk").find("img.Thumb");
Обратите внимание на #
, а не на .
в селекторе.
Ответ 2
Похоже, вы пытаетесь выбрать класс ".htmlChunk", но его не существует. Вместо этого попробуйте выбрать по id.
var images = $("#htmlChunk").find("img.Thumb");
Ответ 3
попробуйте это.
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>
Ответ 4
не является prevObject просто свойством результата?
вы могли бы понять это как "результат имеет следующий prevObject → "