我的HTML形式具有可選的條款顯示如下:爲什麼jQuery選擇器僅適用於第一項?
<span class="Optional Command1 Command2">
<label for="elem1">Elem 1:</label><input type="text" id="elem1" /><br />
</span>
<span class="Optional Command1 Command3">
<label for="elem2">Elem 2:</label><input type="text" id="elem2" /><br />
</span>
一個HTML選擇元件用於選擇COMMAND1,命令2或指令代碼對應於類用於上述HTML元素。
當選擇改變事件發生時,它調用下面的函數:
function showOptional(commandName) {
$('.Optional').hide(); // clear out optional inputs
$('.Optional').filter('.' + commandName).show(); // show relvant inputs
}
然而,對於COMMAND1,其被包括在類兩個elem1和elem2時以上,只有第一輸入元件將被顯示,但我認爲jQuery選擇器將同時適用。
換句話說,對於上面的html,showOptional('Command1')Javascript函數只顯示Command1的第一個跨度,而不顯示Command1的第二個跨度。爲什麼不兼得?
您的代碼應該顯示兩者。如果不是,還有其他一些問題。 – 2012-03-11 00:31:37
我沒有看到任何會阻止工作的東西,實際上它適用於我:http://jsfiddle.net/qH2KF/。是否有其他代碼可以刪除類? – nnnnnn 2012-03-11 00:31:59
它們被函數中的'.hide()'隱藏。請注意,如果您更改小提琴中的代碼以將「Command2」或「Command3」傳遞給該函數,則只會顯示其中一個跨度,並且如果您傳遞了其他字符串,則不會顯示任何內容,因此您已顯示的代碼作品和問題必須在別處。如果你想在開始隱藏時看到它工作:http://jsfiddle.net/qH2KF/3/ – nnnnnn 2012-03-11 00:38:38