通过javascript控制台按标签名称勾选复选框

通过javascript控制台按标签名称勾选复选框,javascript,jquery,checkbox,console,Javascript,Jquery,Checkbox,Console,我想通过javascript检查复选框 问题是,我有一项任务要检查300多个带有特定名称的复选框 我可以选中一个框,或者选中所有框。。。但是如何勾选特定的复选框呢 以下是一个例子: <li id="s1" class="city-select"> <input name="rid" id="r1" value="1" type="checkbox"> <label for="r1" id="l1">Paris</label> <

我想通过javascript检查复选框

问题是,我有一项任务要检查300多个带有特定名称的复选框

我可以选中一个框,或者选中所有框。。。但是如何勾选特定的复选框呢

以下是一个例子:

<li id="s1" class="city-select">
    <input name="rid" id="r1" value="1" type="checkbox">
    <label for="r1" id="l1">Paris</label>
</li>
<li id="s1" class="city-select">
    <input name="rid" id="r2" value="2" type="checkbox">
    <label for="r2" id="l2">Plovdiv</label>
</li>
<li id="s1" class="city-select">
    <input name="rid" id="r3" value="3" type="checkbox">
    <label for="r3" id="l3">Berlin</label>
</li>
下面是我想要输入的内容:

$("lable:contains('paris, berlin')").prev().find('input').addAttr("checked");

选择目标复选框的选择器错误。您需要使用:

$("label:contains(Paris),label:contains(Berlin)").prev().prop("checked",true);

更新:

var cities = ["Paris","Berlin"];
 $("label:contains('" + cities.join("'),label:contains('") + "')").prev().prop("checked",true);

看起来您使用的
prev
应该是
parent
最近的

因此,您获取当前标签,上到容器,然后下到复选框

如果您使用
prev
,那么您可以限制更改html的程度(例如,如果您将来在标签周围添加一个div包装,那么您必须更改所有代码)

鉴于:

<li id="s1" class="city-select">
    <input name="rid" id="r3" value="3" type="checkbox">
    <label for="r3" id="l3">Berlin</label>
</li>
更多信息请参见API文档:


如何在300个城市使用这个

这取决于它们的存储方式。如果是逗号分隔的列表(巴黎、柏林),则首先拆分为数组,如果是json,则首先转换为数组…(参见模式?)


$(“.city select label”).filter(“:contains('Paris'),:contains('berlin')).prev('input').prop('checked',true”)米林它确实有效!谢谢,但是你能为300个城市添加一个较短的代码吗?@Alfonso使它成为一个接受参数的函数-或者使用
.foreach
。这300个城市是如何定义的?@Alfonso因此它不必是“标签:包含(城市1),标签:包含(城市2),标签:包含(城市3),标签:包含(城市4),标签:包含(城市5),…”太好了!!非常感谢你!
<li id="s1" class="city-select">
    <input name="rid" id="r3" value="3" type="checkbox">
    <label for="r3" id="l3">Berlin</label>
</li>
$("label:contains(Paris),label:contains(Berlin)")
    .closest("li")
    .find(":checkbox")
    .prop("checked",true);
var citiesList = "Paris,Berlin".split(",");

$(citiesList).each(function() {
    $("label:contains(" + this + ")")
        .closest("li")
        .find(":checkbox")
        .prop("checked",true);
});