鍍金池/ 問(wèn)答/HTML/ jQuery中.css()的參數(shù)怎么傳遞一個(gè)變量+字符串的屬性值

jQuery中.css()的參數(shù)怎么傳遞一個(gè)變量+字符串的屬性值

原代碼:

$bars[i].style.top =160 - height + sinTable[(ang + (i * freq)) & 4095] * height + 'px';
$bars[i].style.height = height2 + 'px';

但是覺(jué)得.style好像很少見(jiàn),所以打算換成用.css來(lái)實(shí)現(xiàn):

var style={
    top:160 - height + sinTable[(ang + (i * freq)) & 4095] * height + 'px',
    height:height2 + 'px'
};
$bars[i].css(style);

為了方便直接傳遞一個(gè)變量(不用加引號(hào)),就直接定義了一個(gè)變量傳參。但沒(méi)有任何效果。單獨(dú)定義變量分別傳入也不行。
想知道如果要用.css()來(lái)實(shí)現(xiàn)的話應(yīng)該怎么傳入?yún)?shù)

回答
編輯回答
病癮

真的有看過(guò)一眼jQuery的Api么。。
http://www.w3school.com.cn/jq...

$bars.css({
 top:...,
 height:...
})

順便style就是不用jQuery的時(shí)候直接寫(xiě)原生JS用的啊,寫(xiě)法有四種:

$bars[i].style.height=...;//設(shè)置單個(gè)屬性
$bars[i].style.cssText='height:...; top:...;';//設(shè)置多個(gè)屬性
$bars[i].setAttribute('style', 'height:...;top:...');
$bars[i].style.setProperty('height', '...');
2018年7月14日 11:46
編輯回答
溫衫

最后一句改成:
$bars.eq(i).css(style);

有道是,“文檔看的少,風(fēng)吹就要倒?!?/p>

2018年7月30日 20:58
編輯回答
維她命

樓上說(shuō)的是對(duì)的。

實(shí)際上,jQuery 在這里應(yīng)用了設(shè)計(jì)模式中的“享元模式”,即用一套共享的數(shù)據(jù)降低大量重復(fù)性內(nèi)容的內(nèi)存和運(yùn)算損耗。所以 $('.bar') 實(shí)際上取出來(lái)了所有 DOM 節(jié)點(diǎn),然后返回的 $bars 并非 DOM Collection,而是一個(gè) jQuery 實(shí)例,它是一個(gè)類(lèi)數(shù)組對(duì)象,包含很多方法,比如 .css(attr, value)

所以你應(yīng)該用 $bars.css(style)。

另外,理論上 $bars[i] 會(huì)返回一個(gè) DOM 節(jié)點(diǎn),你直接調(diào)用 .css() 方法會(huì)報(bào)錯(cuò),建議你養(yǎng)成“不正常先看控制臺(tái)”的習(xí)慣,對(duì)將來(lái)會(huì)有很大幫助。

2018年6月25日 22:35
編輯回答
夢(mèng)若殤

要DOM操作,是要$bars[i](指向DOM),但你要用jq的css()時(shí),直接$bars.css(style)即可。

2018年5月16日 04:26