Jquery - 将父类添加到子类中的链接

Jquery - Add parent class to link in child

本文关键字:子类 链接 添加 父类 Jquery      更新时间:2023-09-26

我正在为一个论坛开发Chrome扩展程序。这是来自线程页面的一段 HTML:

<div class="body_message" data-message-id="198342" data-topic-id="2876" data-user-id="1769">
    <div class="uk-grid post_wrapper">
        <div class="uk-width-medium-1-6">
            <div class="poster"> 
                <h4></h4>
                <ul class="reset smalltext" id="msg_198342_extra_info">
                    <li class="postcount">194</li>
                    <li class="online">Online:</li>
                    <li class="profile"></li>
                </ul>
            </div>
        </div>
    </div>
</div>

我为每个帖子添加按钮(img0,img1,img2,img3):

$("li.profile").before("<li class='verdacht smalltext'>Verdenking: "+img0 + img1 + img2 + img3 +"</li>");

现在,这些按钮需要触发一个函数,并发送数据用户ID。单击按钮时,该用户的所有帖子都将获得不同的背景颜色。

关于如何在每个帖子中获取父母的"数据用户ID"的任何想法?

jQuery的closest()是你的朋友。它遍历选择器祖先并返回第一个匹配的元素。

var userId = $('.profile').closest('.body_message').data('user-id');
你可以从

触发事件的元素(this)向上遍历 dom 到最接近的<div class="body-message">,并使用 jQuery 的 data() 函数获取data-user-id值。

// assuming img0 is a jQuery object
img0.on('click',function(e){
    var data = $(this).closest('.body_message').data('user-id');
    // do whatever you need in the click event
});

感谢您的建议,我已经让它工作了!

$( "li.profile" ).each(function() {
    var userId = $(this).closest('.body_message').data('user-id');
    $(this).before("<li class='verdacht smalltext'>Verdenking: "+img0 + img1 + img2 + img3 + userId +"</li>");
});

接下来要弄清楚的是Chrome存储。