2012-10-03 57 views
2

如何在jQuery中编写以下代码,并将其应用于所有元素(类名为something)。我试图让https://gist.github.com/1129073应用于由class指定的多个元素,而不是仅由id定位的单个元素。将JavaScript代码重新写入jQuery

更具体地说,我在看着http://jsfiddle.net/fgnass/9BkjZ/,并试图使它在类而不是仅仅一个id上工作,因此它可以应用于很多元素。

(function(a,b,c){ 
    setInterval(function(){ 
    for(
     b=0; 
     b<8;c||(a.innerHTML+='<i><b>'), 
     a.childNodes[b].style.opacity=(++b-~c)%8*.1+.2); 
    c=-~c 
    },99) 
})(document.getElementsByClassName('something')); 

以上仅该代码使用})(document.getElementsByClassName('something')[0]);作为最后一行时工作的第一个元素w为someting /类名上。

+0

哇。这种扭曲的混乱甚至从何而来? –

+2

@MattBall也许类似于http://www.140byt.es/ ;-) – Prinzhorn

+0

^Yup大声笑。 ;)@MattBall,请参阅:https://gist.github.com/1129073。我已经将'getElementById'改为'getElementsByClassName',因为我希望它适用于许多'类'而不是仅仅一个'id'。 – Steve

回答

2

的jQuery此位应该做同样的事情,你的JavaScript。

$('.something').each(function() { 
    for (i = 0; i < 8; i++) 
    { 
     $(this).append('<b class="b' + i + ' o' + i + '" data-opacity="' + i + '"><i>•</i></b>'); 
    } 
}); 

setInterval(function() { 
    $('.something b').each(function() { 
     $(this).removeClass('o' + $(this).attr('data-opacity')); 
     $(this).attr('data-opacity', (parseInt($(this).attr('data-opacity')) + 1) % 8); 
     $(this).addClass('o' + $(this).attr('data-opacity')); 
    }); 
}, 99); 

你也可能想看看它不使用图像还可以创建一个装载微调如下:
http://fgnass.github.com/spin.js/
http://cssload.net/
http://www.jquery4u.com/animation/10-css3-jquery-loading-animations-solutions/

0

它还将努力

$('.something').show(); 
+0

应该更具体地了解代码的设计目的,请参阅上面我更新的问题。 – Steve

+0

这不会看起来像这样:http://jsfiddle.net/84yzL/ –

+0

^我只是笑我的屁股在那个jsfiddle –

0

要解释一下

$('.something').fadeIn(); 

从SLaks采取回答

$('.something') 

将抓住所有.something类的元素,淡入()是一个内置的jquery方法,它将把元素的不透明度从0改为1.请注意,如果你的元素有一个不透明度为1,你调用fadeIn,我认为它会闪烁和淡入。除了可以在jquery网站上找到的fadeIn以外,还有很多其他jQuery实用程序。

$('SELECTOR') 

选择器可以是任意CSS选择器,例如

$('#myID .something') 
$('#myID > .something') 
$('#myID .something:first-child') 
$('div.className #myid') 
+0

谢谢你的回应。我明白在jQuery中使用CSS选择器,但是如何将该函数包装到类选择器目标中?请重新阅读我的问题,以了解我正在努力完成的任务。 – Steve