javascript - 如何将事件元素与存储在数据中的元素进行比较?

标签 javascript jquery testing

我有一系列的 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/

相关文章:

javascript - jQuery 数据表 : hide search bar

security - 除了Fiddler、Charles、Poster、Achilles,还有其他HTTP/HTTPS拦截工具吗?

ruby-on-rails - Rspec::允许每个实例接收消息

php - 在大型 C 项目上编写代码时进行测试

javascript - React - 数组拼接问题

javascript - 如何在 d3 中的条形图更新数据之间转换?

jquery - 如何通过点击来增加和减少线条?

javascript - 使用 JavaScript 根据设备屏幕尺寸有条件地加载广告代码

javascript - 如何在 JavaScript 中向 DOM 元素添加类?

javascript - 获取链接的最后一个字符串