1

我有一些这样的代码,这里是最重要的部分,不能按我的意愿工作。

<div class="somediv" data-dummy="class11">some text</div>
<div class="somediv" data-dummy="class12">some flying saucers</div>
<div class="somediv" data-dummy="class13">some crazy jpg</div>


var AllFirstCssClasses = [ 'class11', 'class12', 'class13' ];
var AllSecondCssClasses = [ 'class21', 'class22', 'class23' ];

for (var index = 0; index < $('div.somediv').length; index++){
   var firstCssClass = $('div.somediv').eq(index).attr('data-dummy');
   var index2 = $.inArray(firstCssClass, AllFirstCssClasses);
   $('div.somediv').eq(index).addClass(firstCssClass + ' ' +  AllSecondCssClasses[index2] );
}

我已经完成了一个适用于此示例的小提琴http://jsfiddle.net/FVVXx/11/,但是此代码在某个时间间隔触发的函数内(它是一个滑块)并且它不像在这个这里的例子。

在我的代码中,第一个 div 的结果总是<div class="somediv class11 undefined">undefined 应该是AllSecondCssClasses[index2]-> class21

感谢您的回复:)

4

1 回答 1

1

这就是您应该使用 JQuery 编写算法的方式。如果你能解释你想要做什么,我将能够提供更多帮助。

$(function(){
var AllFirstCssClasses = [ 'class11', 'class12', 'class13' ];
var AllSecondCssClasses = [ 'class21', 'class22', 'class23' ];

function getParallelClass( firstClass ){
    return  AllSecondCssClasses[$.inArray(firstClass, AllFirstCssClasses)];
}

$("div.somediv").each(function(index,item){
      var $myDummy = $(this).attr("data-dummy");
      $(this).addClass($myDummy).addClass(getParallelClass( $myDummy) );
});

});

这是我的JSFiddle

于 2012-08-09T10:27:30.020 回答