我正在学习jQuery。代码片段如下。我不理解最后一句话的语法。
为什么没有.
?
[]
是什么意思?
BTW,$
的特殊之处是什么?
/* Code provided for context, irrelevant to the actual question.
$('#executeButton').click(function(){
$('body').addClass('done');
$('.done #controls :radio').attr('disabled',true);
var sources$ = $('#sourcePane input:checked~img');
if ($('[name=clone]:checked').val()=='yes') sources$ = sources$.clone();
var targets$ = $('#targetPane input:checkbox:checked').parents('.target');
var operation = $('[name=operations]:checked').val();*/
targets$[operation](sources$); //<=== HERE
/*});*/
还有一些背景:
<div>
<label>Operation:</label><br/>
<input type="radio" name="operations" value="append" checked="checked"/> append
<input type="radio" name="operations" value="prepend"/> prepend
<input type="radio" name="operations" value="before"/> before
<input type="radio" name="operations" value="after"/> after
</div>
答案 0 :(得分:3)
[]意味着什么?
[]
是一种特殊的javascript属性访问表示法。想象一下,如果我有一个ojbect,如:
var o = {
"abc.xyz" : 5
};
我不能说o.abc.xyz
,这就是[]
方便o['abc.xyz']
的地方。
$?
有什么特别之处
$
通常用作jquery的命名约定:
var $this = $(this);
答案 1 :(得分:1)
让我们看看这一行:
targets$[operation](sources$);
targets$
和sources$
只是变量。 $
是一个有效的字符,可以在变量的任何位置使用,就像您可以使用S
一样。将它们更改为targetsS
或sourcesS
意味着相同。
targets$[operation]
是一个数组索引。 targets$
已经是一个数组,用于选中包含.target
的所有已选中复选框。