我无法让jQuery的$(this)
函数按预期工作......或者更确切地说,可以工作。据我所知,两者都是
$('.chamber').each(function(){
$(this).find('.cell').slice(0,19).css('background-color','red');
});
和
$('.chamber').each(function(){
$('.cell',this).slice(0,19).css('background-color','red');
});
应该做同样的事情:在每个.cell
中选择前20个(或19个?).chamber
,并将它们设为红色。
不幸的是,实际发生的是它们都抛出了同样的错误:
Uncaught exception: ReferenceError: Undefined variable: YName
Error thrown at line 19, column 8870 in <anonymous function: CLASS>(W, U, V, T, Z, aa) in jquery-1.3.2.min.js:
if(Z^(YName&&(" "+YName+" ").indexOf(W)>=0))
called from line 19, column 3944 in <anonymous function: F.filter>(ad, ac, ag, W) in jquery-1.3.2.min.js:
Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);
called from line 19, column 896 in <anonymous function>(Y, U, ab, ac) in jquery-1.3.2.min.js:
af=F.filter(ae.expr,ae.set);
called from line 19, column 21013 in <anonymous function: F>(Y, X, V, W) in jquery-1.3.2.min.js:
return T(Y,X,V,W)
called from line 12, column 5629 in <anonymous function: find>(E) in jquery-1.3.2.min.js:
o.find(E,this[0],F);
called from line 169, column 3 in <anonymous function>():
$(this).find('.cell').slice(0,19).css('background-color','red');
called via Function.prototype.call() from unknown location in <anonymous function: each>(G, K, F) in jquery-1.3.2.min.js:
/* no source available */
called from line 12, column 2276 in <anonymous function: each>(F, E) in jquery-1.3.2.min.js:
return o.each(this,F,E)
called from line 168, column 2 in <anonymous function>():
$('.chamber').each(function(){
called from line 26, column 460 in <anonymous function: ready>():
a.call(s,c);
我做错了什么?
答案 0 :(得分:1)
首先,你是对的,两种语法都是等价的。
您的缩小jQuery脚本似乎存在问题。我从googlecode下载了同一个,我在那里找不到任何YName
变量。
我会在这里说话,并说GetElementsByName()
对{{1}}的呼叫因某种原因而出现乱码。尝试使用脚本的新副本。
答案 1 :(得分:0)
请参阅此示例:它运行良好http://jsfiddle.net/FCFmy/