5
我有一個來自客戶端的任務來糾正一個頁面,我發現jQuery後代選擇器的行爲並不像預期的那樣。爲什麼這個jQuery選擇器不起作用?
下面是HTML的excrept:
<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來調試它:
這工作:
console.debug($("#mssysform8217 :input[name='email']").val());
這不工作:
console.debug($("#mssysform8217 #formfield-item-email :input[name='email']").val());
不確定
但:
console.debug($("#mssysform8217 #formfield-item-email"));
[DIV#formfield項-email.formfield項]
問題提交腳本是由第三方應用程序生成的,它希望使用3級後代選擇器。
爲什麼使用多個ID選擇器(「#id」)? – Homer 2010-11-22 21:41:10
而且似乎只有一個'`從#formfield-item-email降序,所以[name]屬性選擇器是不必要的。 `$('#formfield-item-email input').val()`應該是你所需要的。 – stevelove 2010-11-22 21:44:26