按文字加入2列表并添加值

时间:2014-11-17 16:53:35

标签: javascript jquery

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

$('#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)

1 个答案:

答案 0 :(得分:1)

你几乎让你的工作。我从您提供的版本中更改了以下行:

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

您提供的版本问题b是一个DOM元素,因此indexof将始终返回-1。将b转换为文本后,一切都会正常运行。您将注意到的下一件事是因为您使用索引,第一项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>');
            }
        });
    }); 
});