jquery,为什么id选择器不起作用

时间:2014-09-03 22:04:04

标签: javascript jquery

在开始页面上,我需要隐藏div dlaFirmy。 这个符号$('#dlaFirmy')。hide();不起作用。如果我使用$(' table')。hide(); 它很容易隐藏。

可能上述陈述不正确。 提前感谢您的帮助

javascript code:
 <script>
    $(document).ready(function(){     
    $('#dlaFirmy').hide();
    $('select').on('change', function (e) {
       var optionSelected = $(this).find("option:selected");
       var valueSelected  = optionSelected.val();
       if( valueSelected === "2"){
           $('#dlaFirmy').show();
            alert("sdfsd");
       }
       else {
           $('#dlaFirmy').hide();
       }

       });
       });

Html code :

    <div class="formularzOC">
        <form id="form1" action="dodajDistrictManager.do" method="POST">
                <div id="podmianka"> <b>Dodaj nowy Lead: </b></div>

        <table>
            <select name="thelist">
                <option value="1">Klient Indywidualny</option>
                <option value="2">Klient Biznesowy</option>
            </select> 
            <tr>
                <td>Imię:</td><td><input type="text" name="imie" ></td>
            </tr>
            <tr>
                <td>Nazwisko:</td><td><input type="text" name="nazwisko" ></td>
            </tr>
            ...

           <div id="dlaFirmy"> 
                <tr>
                    <td>Nazwa firmy:</td><td><input type="text" name="email" ></td>
                </tr>
                <tr>
                    <td>Nip:</td><td><input type="text" name="email" ></td>
                </tr>
           </div>

        </table>
            <button type="submit"> Zatwierdź</button>
    </form>
        </div>

2 个答案:

答案 0 :(得分:3)

您的标记非常无效,您无法依赖浏览器实际执行的任何操作。

table元素不能直接包含select元素或div元素。如果您将它们放在table内,浏览器可能会将它们移到它之外。

div个元素不能直接包含tr个元素。

结论:您必须使您的标记有效。对于您要执行的操作,tbody而不是div(对于#dlaFirmy)可能有意义。

答案 1 :(得分:0)

在一个案例中,您正在隐藏一个表,而在另一个案例中,您隐藏了一个div。这就是你得到不同结果的原因。