5

何らかの理由で、jQuery を使用して ID で非表示の入力を取得できません。

できます

> $('input')
[<input type=​"checkbox" name=​"property-type" id checked>​, <input type=​"checkbox" name=​"property-type" id checked>​, <input type=​"checkbox" name=​"property-type" id>​, <input type=​"checkbox" name=​"property-type" id>​, <input type=​"hidden" name=​"no-of-rooms" id=​"1-rooms">​, <input type=​"hidden" name=​"no-of-rooms" id=​"2-rooms" checked>​, <input type=​"hidden" name=​"no-of-rooms" id=​"3-rooms" checked>​, <input type=​"hidden" name=​"no-of-rooms" id=​"4-rooms">​, <input type=​"hidden" name=​"no-of-rooms" id=​"5-rooms">​, <input type=​"hidden" name=​"no-of-rooms" id=​"over-5-rooms">​, <input type=​"checkbox" name=​"property-type" id>​, <input type=​"checkbox" name=​"property-type" id>​, <input type=​"checkbox" name=​"property-type" id>​]

これにより、type=hidden の入力を含め、ページ上のすべての入力が適切に取得されます。

私もできる

> $('input[type="hidden"]')
[<input type=​"hidden" name=​"no-of-rooms" id=​"1-rooms">​, <input type=​"hidden" name=​"no-of-rooms" id=​"2-rooms" checked>​, <input type=​"hidden" name=​"no-of-rooms" id=​"3-rooms" checked>​, <input type=​"hidden" name=​"no-of-rooms" id=​"4-rooms">​, <input type=​"hidden" name=​"no-of-rooms" id=​"5-rooms">​, <input type=​"hidden" name=​"no-of-rooms" id=​"over-5-rooms">​]

これにより、すべての非表示フィールドが取得されます。それらはすべてIDを持っていることに注意してください。

何らかの理由で、含まれているかどうかに関係なく、ID でこれらの入力をターゲットにしようとすると[type="hidden"]、空のリストが表示されます。

> $('input[type="hidden"]#2-rooms')
[]
> $('input#2-rooms')
[]

ID でターゲットを設定しないことで回避策を見つけることができましたが、これが不可能と思われる理由を知っておくと役に立ちます。

編集

使用するだけで$('#2-rooms')うまくいき、明らかに最良のアプローチです。ただし、実際に html5 doctype ( ) を含め$('input#2-rooms')ので、なぜ機能しないのかはまだわかりません。この場合、数字で始まる ID は問題ないはずです。<!DOCTYPE html>

4

1 に答える 1

1

id セレクターを使用する代わりに、属性セレクターを使用してワイルドカードの末尾を使用できます。

$('[id$=rooms]')

または、*containsに使用

$('[id*=rooms]')

または、id を持つ単一の要素がある場合は、ライブ デモ

 $('#2-rooms')

編集ID を持つ単一の要素がある場合は、単に ID セレクターを使用できます。$('#2-rooms')複数の要素が同じ ID を持つ場合、それは有効な HTML ではありません。一意の ID を持つ必要があります。2-rooms、3-rooms のようなパターンの ID がある場合は、属性セレクターとワイルドカードを使用します。

于 2013-05-03T15:42:11.773 に答える