嘿,大家好我是新來的jQuery和JS一般,有一個非常簡單的問題,基本上我遇到了一個排序腳本在線,我試圖瞭解什麼通過jQuery的文檔要怎麼回事:聲明一個變量而不返回值。
腳本是如下:
$(function() {
var buttons = $('#fruit,#vegetable,#meat').click(function() {
$(this).toggleClass('active');
var classes = buttons.filter('.active').map(function() {
return this.id;
})
.get().join(',.');
$('div.fruit,div.vegetable,div.meat').hide().
filter('.' + (classes || 'none')).show();
console.log(classes.get().join(',.'));
});
});
這個腳本是基於以下HTML運行:
<div style="float:right; padding:25px;">
<button id="fruit" class="active"><span>fruit</span></button>
<button id="vegetable" class="active">vegetable</button>
<button id="meat" class="active">meat</button>
</div>
<div>
<p>Trying to use buttons as an "or" case rather than "and." When choosing fuit or vegetable, I want to see tomato as part of each list, <em>not just</em> when both are selected.</p>
<div class="fruit">
<p>apple</p>
</div>
<div class="vegetable">
<p>pumpkin</p>
</div>
<div class="vegetable">
<p>okra</p>
</div>
<div class="fruit">
<p>orange</p>
</div>
<div class="meat">
<p>beef</p>
</div>
<div class="fruit vegetable">
<p>tomato</p>
</div>
</div>
小提琴here。
現在我明白,只是下面的腳本的大部分:
對4家劇本的作者是使用下面的代碼:
var classes = buttons.filter('.active').map(function() {
現在按鈕沒有被返回的任何值,所以不應該是空的?
抑或是說下面(在同一行):
var buttons = $('#fruit,#vegetable,#meat').click(function() {
筆者也隱含定義的按鈕,如:
var buttons = $('#fruit,#vegetable,#meat')
有人能澄清這對我來說,因爲我正在努力掌握這個簡單的概念。
謝謝。
Alex-Z。
我認爲還需要關於jQuery方法鏈接的說明。 – Yoshi
所以基本上按鈕的值是'var buttons = $('#fruit,#vegetable,#meat')'。 –
@AlexanderSolonik是的,它是。 '.click()'返回相同的jQuery對象。 – Regent