为什么不向指定的元素添加类

时间:2015-03-16 09:09:45

标签: jquery

我有一个值为

的临时代码
826_ZZ_0_ZZ_0tab1_checkbox
826_ZZ_0_ZZ_0tab2_checkbox

在上面

tab1引用第一个数量,tab2分别引用第二个数量

这是我的程序

var addonsQtyWrap = $('<div class="addonsQtyWrap"></div>');
 var temparray = [];
 var vendoritemsdata = [{
     "name": "826_ZZ_0_ZZ_0tab1_checkbox",
     "cost": 100,
     "additionname": "Choco chips",
     "addtionid": 59
 }, {
     "name": "826_ZZ_0_ZZ_0tab2_checkbox",
     "cost": 100,
     "additionname": "Choco chips",
     "addtionid": 59
 }];

 var quantity = 3;
 var ulhtml = '<ul>';
 for (var i = 1; i <= quantity; i++) {
     if (i == 1) {
         ulhtml += '<li    data-tabid="' + i + '"   class="tabclcik">Qty-' + i + '</li>';
     } else {

         ulhtml += '<li   data-tabid="' + i + '" class="tabclcik">Qty-' + i + '</li>';
     }
 };
 addonsQtyWrap.append(ulhtml);
 $("#header").append(addonsQtyWrap);
 for (var j = 0; j < vendoritemsdata.length; j++) {
     temparray.push(vendoritemsdata[j].name)
 }
 for (var k = 0; k < vendoritemsdata.length; k++) {
     var name = vendoritemsdata[k].name;
     alert(name);
    var res = name.indexOf("tab" + k);
        if (res !== -1) {
         $(".addonsQtyWrap").find('.tabclcik[data-tabid="'+k+'"]').addClass('active');
     }
 }

创建后,我最后检查临时数组的名称,如果名称包含标签数量,我正在添加一个类

但它没有在数量上添加活动类(检查元素)

<li data-tabid="1" class="tabclcik">Qty-1</li>

http://jsfiddle.net/cod7ceho/24/

1 个答案:

答案 0 :(得分:2)

vendoritemsdata的索引从0开始,而data-tabid属性从1开始。我想这就是为什么你没有得到你期望的。

你必须解决这种不匹配问题,这样做有几个选择。例如,更改tab1 -> tab0等,或在k+1周期中使用k而不是for

 var res = name.indexOf("tab" + (k+1));

$(".addonsQtyWrap").find('.tabclcik[data-tabid="'+(k+1)+'"]').addClass('active');