Почему этот селектор jquery не работает?

У меня есть задание от клиента исправить страницу, и я обнаружил, что селектор потомков jQuery ведет себя не так, как ожидалось.

Вот выдержка из HTML:

<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()))
    

    test@gmail.com

  • это не сработало:

    console.debug($("#mssysform8217 #formfield-item-email :input[name='email']").val());
    

    undefined

  • but:

    console.debug($("#mssysform8217 #formfield-item-email"));
    

    [div#formfield-item-email.formfield-item]

Проблема в том, что скрипт submit генерируется сторонним приложением, и оно хочет использовать трехуровневый селектор потомков.

5
задан John Hartsock 6 July 2011 в 17:16
поделиться