我有一系列的 div:
<div class="some_class active">Some Content</div>
<div class="some_class">Different Content</div>
<div class="some_class">More Different Content</div>
(事件类动态变化)
每个都被分配给一个图像元素的数据:
$("div.some_class").each(function(){
current = $(this);
$('div#images').append('<img class="link new" src="/style/images/image.png" />');
$(".link.new").removeClass('new').data('project', current);
});
我想使用这个函数来比较事件元素和数据中存储的元素:
function live_test(){
active = $("div.some_class.active");
$("#images img.link").each(function(){
if ($(this).data('project') == active){
$(this).addClass("active");
}
});
}
目的是添加一类 active
到包含与具有 active 类的相同 div.some_element
的图像,但此函数返回 false一直,从来没有找到匹配项。我很确定我在这里缺少基本知识,但是什么?还有其他方法吗?
最佳答案
您正在比较 2 个 jquery 对象。这些对象永远不会相同。您要比较的是 jquery 对象中的元素。假设两者只能有一个元素,那么这样做:
if ($(this).data('project')[0] == active[0]){
编辑:
虽然上面应该回答你的问题,但为什么不做你正在做的相反的事情。不是将元素存储在图像上,而是将图像(或图像的 id)存储在元素上。然后你可以很容易地抓取与给定元素相关的图像。您希望尽可能避免循环。
关于javascript - 如何将事件元素与存储在数据中的元素进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6470427/