3

我正在尝试检查一系列按钮以查看它们是否已被选中以生成查询字符串。据我所知,逻辑看起来像这样:

if ($("input[name='ovr']")[0].checked)
{
...
}

这行得通,但是由于我不想使用一系列 if 语句来生成字符串(因为以后可能会添加更多按钮,效率低下等),所以我生成了一个表示与按钮关联的名称的数组(我打印了数组;它肯定包含正确的名称)。但是,当我循环遍历数组中的每个名称时,控制台提示“输入”是一个无法识别的表达式。这是循环:

    for (i = 0; i < myList.length; i = i + 1) {
        if ($("/"input[name='" + myList[i] + "']/"")[0].checked) {
            string += myList[i] + "=" + myList[i] + "&";
        }
    }

string 是一个变量,如果按钮检查应该返回 true,则将正确的签名(?)附加到自身上。myList 是包含名称的数组。

不幸的是,我对这一切都不熟悉,真的不知道从哪里开始。我确实尝试用谷歌搜索答案(这里真的是新手),但我什至不太确定要搜索什么。我还弄乱了输入表达式的措辞,使用了不同的转义字符等,但无济于事。HTML 和大部分 javascript 都不是我的(它是我的主管的),所以我很迷茫。您可以提供的任何建议将不胜感激。谢谢!

4

2 回答 2

2

像这样的东西会起作用(我真的不明白你为什么要添加那些反斜杠,所以我只向你展示正确的方式):

for (i = 0; i < myList.length; i = i + 1) {
    if ($("input[name='" + myList[i] + "']")[0].checked) {
        string += myList[i] + "=" + myList[i] + "&";
    }
}

注意:如果您正在生成查询字符串,请不要忘记使用encodeURIComponent()!

于 2012-07-06T15:17:57.213 回答
1

像这样的东西?

var query = "?";
$('input:checked').each(function(index) {
    query += this.name + "=" + this.value + "&";
});

您可以修改选择器以仅获取您需要的复选框。

于 2012-07-06T15:33:38.573 回答