按文本加入 2 列表并添加价值

Join 2 list by text and add value

本文关键字:添加 列表 文本      更新时间:2023-09-26

我想将括号中的值从第二个列表转移到第一个列表。我试图这样做:

$('#views-exposed-form-cat-watch-block .form-type-radio label.option').each(function(){
    var a = this;
    $('#block-views-tags-block .views-field-name a').each(function(){
        var b = this;
        if($(a).text().indexOf(b)!=-1){         
            var c = $(b).closest('.views-row').find('.views-field-nid .field-content').text();
            $(a).after('<span>'+c+'</span>');
        }
    });
});

这是我的例子: http://jsfiddle.net/0xm6xzLb/1/它应该看起来像这样:

Word (4)
Word2 (1)
Word3 (2)
Word 
(4)
Word2 
(1)
Word3 
(2)

你差点就工作了。我唯一更改的是您使用以下行提供的版本:

if($(a).text() == $(b).text())

您提供的版本b是一个 DOM 元素,因此indexof将始终返回 -1。将b转换为文本后,一切都会正常工作。接下来你会注意到的是,因为你使用的是 indexof,第一项Word在所有三个项目中都显示为子字符串。为了绕过这一点,我只是将其设置为文本必须相等,以防止这种重叠。

$(function() {
    $('#views-exposed-form-cat-watch-block .form-type-radio label.option').each(function(){
        var a = this;
        $('#block-views-tags-block .views-field-name a').each(function(){
            var b = this;
            if($(a).text() == $(b).text()){
                var c = $(b).closest('.grid-1-4').find('.views-field-nid .field-content').text();
                $(a).after('<span>'+c+'</span>');
            }
        });
    }); 
});