クライアントからページを修正するタスクがあり、jQueryの子孫セレクタが期待通りに動作しないことがわかりました。なぜこのjqueryセレクタが機能しないのですか?
console.debug($("#mssysform8217 :input[name='email']").val());
:
<form action="http://submit.url/subscribe.php" method="post" enctype="multipart/form-data" id="mssysform8217" class="mssysform" >
<div id="mssys-formcontainer">
<div class="formfields">
<table style="width: 100%">
<div class="formfield-item" id="formfield-item-email">
<tr>
<td class="style1"><label >E-mail címe</label></td>
<td>
<input type="text" name="email" value="">
<div class="error-container">Please fill in this field!</div>
<div style="clear: both;"></div>
</td>
</tr>
</div>
</table>
</div>
</div>
</form>
私はFirefoxでそれをデバッグしようとした:
これは働いていた。ここ
は、HTMLのexcreptですこれは働いていませんでした:
console.debug($("#mssysform8217 #formfield-item-email :input[name='email']").val());
未定義
しかし:
console.debug($("#mssysform8217 #formfield-item-email"));
[DIV#フォームフィールド項目-email.formfield項目]
を問題送信スクリプトがサードパーティーのアプリケーションによって生成され、3レベルの子孫セレクターを使用したいということです。
なぜ複数のIDセレクタ(「#id」)を使用していますか? – Homer
そして、#formfield-item-emailから降順である「」が1つしかないようですので、[name]属性セレクタは不要です。 '$( '#formfield-item-email input')。val()'は必要なものだけでなければなりません。 – stevelove