我的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