マイ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選択素子は、上記のHTML要素のクラスに対応するのCommand1、Command2を又はCOMMAND3を選択するために使用されます。選択変更イベントが発生すると、それは次の関数呼び出し
:elem1と上記のElem2両方のクラスに含まれるCommand1を、しかしながら
function showOptional(commandName) {
$('.Optional').hide(); // clear out optional inputs
$('.Optional').filter('.' + commandName).show(); // show relvant inputs
}
を、最初の入力要素は、表示されます。私はjQueryセレクターが両方を適用すると思った。
つまり、showOptional( 'Command1')Javascript関数では、Command1の最初のスパンのみが表示されますが、Command1の2番目のスパンは表示されません。なぜ両方ではない?
コードは両方とも表示されます。そうでない場合は、他にも問題があります。 –
私はそれが働くのを止める何も見ません、そして実際に私のために働く:http://jsfiddle.net/qH2KF/。クラスを削除できる別のコードがありますか? – nnnnnn
あなたの関数で '.hide()'によって隠されています。関数に "Command2"または "Command3"を渡すようにフィードドのコードを変更すると、スパンの1つのみが表示され、他の文字列を渡すとnoneが表示されるので、確実に表示したコード問題は他の場所になければなりません。あなたが隠れているときにそれが動作するのを見たいと思えば:http://jsfiddle.net/qH2KF/3/ – nnnnnn