0

show() hide()当您单击单选按钮时,我遇到了这个 Jquery div问题。我已经搜索了这个论坛,并且能够使该功能正常工作,但不是所有的单选按钮。我有n个单选按钮,当用户单击“是”时,我想显示一个 div 部分。但我遇到的问题是这对第一个单选按钮正常工作,其余的不响应点击。这是我正在使用的 js

$(document).ready(function() {

    $('#isYes').click(function() {
        var test = $(this).val();
        alert(test)
        $("div.desc").hide();
        $('#divCheck').show();

    });

    $('#isNo').click(function() {

        $('#divCheck').hide();
    });

我的jsp代码看起来像

 <p>

           <td><core:out value="${obj.txt}" /> <form:radiobutton
                                            path="car[${Status.index}].carSelection"
                        value="isYes" onclick="" id="isYes" label="Yes" /> <form:radiobutton
                        path="car[${Status.index}].carSelection"
                        value="isNo" id="isNo" label="No" />
    </td>

</p>



     <div id="divCheck" class="desc({where desc is display: none;})">


                    <c:forEach items="${car.carList}" var="type"
                        varStatus="cstatus">

                        <form:checkbox path="carList[${cstatus.index}]"
                            value='${type.carName' />
                        <core:out value="${type.carName}" />
                        <br />

            </c:forEach>

            </div>

为什么复选框只显示第一个单选按钮而不显示其余单选按钮?

4

1 回答 1

0

正如 alexg 所说,如果您在一个页面上使用多个 id,jquery 只会找到第一个。如果你把它改成一个类。您将获得一个包含任意数量元素的选择器。

这有效:

<input class="isYes" type="radio">
<input class="isYes" type="radio">
var totalElements = $('.isYes').length; // 2

这不会:

<input id="isYes" type="radio">
<input id="isYes" type="radio">
var totalElements = $('#isYes').length; // 1
于 2012-05-03T20:24:54.333 回答