如何更改函数以将其操作限制为id,class或selector

时间:2017-01-19 23:24:09

标签: javascript jquery html css checkbox

我有一个用jquery编写的函数,它将复选框的值复制到textarea #msg

<?xml version='1.0' encoding='UTF-8'?>
<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
    <edmx:DataServices>
        <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="NTTD.OData">
            <EntityType Name="Property">
                <Key>
                    <PropertyRef Name="ID"/>
                </Key>
                <Property Name="ID" Type="Edm.Int32"/>
                <Property Name="Name" Type="Edm.String"/>
                <Property Name="Location" Type="Edm.String"/>
            </EntityType>
            <EntityContainer Name="Container">
                <EntitySet Name="Properties" EntityType="NTTD.OData.Property"/>
            </EntityContainer>
        </Schema>
    </edmx:DataServices>
</edmx:Edmx>

点击其值副标题上的任意复选框到#msg字段 如何减少只有$(document).ready(function(){ $("input:checkbox").click(function() { var output = ""; $("input:checked").each(function() { output += $(this).val() + ""; }); $("#msg").val(output.trim()); }); });或选定div中的复选框以这种方式运行的效果?

我想要这个:

<ul>

要复制到<ul> <input name="foo2" type="checkbox" value="Hello" id="tel_1"> <label for="tel_1">Hello</label> </ul> textarea,请执行以下操作:

#msg

不被复制。我玩过这个:

<input name="foo" value="123123123" id="tel_11" type="checkbox">
<label for="tel_11">Alan</label>

并将$("input:checkbox").click(function() 更改为input:checkbox,但我不想工作。

2 个答案:

答案 0 :(得分:1)

您可以使用id

$(document).ready(function(){
    $("#tel_1").click(function() {
        var output = "";
        output += $(this).val() + "";
        $("#msg").val(output.trim());
    });
});

或者,如果您只想排除#tel_11,可以使用:not()选择器,例如:

$(document).ready(function(){
    $("input:checkbox:not('#tel_11')").click(function() {
        var output = "";

        $("input:checked:not('#tel_11')").each(function() {
            output += $(this).val() + "";
        });

        $("#msg").val(output.trim());
    });
});

更新:

如果您在评论(答案示例)中有多个id,那么您可以使用$("[id^='answer_'") ans这样的选择开头,其中包含您的所有18个答案,例如:

$(document).ready(function(){
    $("[id^='answer_'").click(function() {
        var output = "";
        output += $(this).val() + "";
        $("#msg").val(output.trim());
    });
});

希望这有帮助。

答案 1 :(得分:0)

使用与<ul>的子项复选框匹配的选择器。

$("ul > :checkbox").click(function() {
    ...
});