我正在尝试检查一系列按钮,看它们是否已被选中以生成查询字符串。据我所知,逻辑看起来像这样:
if ($("input[name='ovr']")[0].checked)
{
...
}
这样可行,但由于我不想使用一系列if语句来生成字符串(因为以后可能会添加更多按钮,效率低等),我生成了一个表示与按钮关联的名称的数组(我打印了数组;它肯定包含正确的名称)。但是,当我创建一个循环来遍历数组中的每个名称时,控制台建议'input'是一个无法识别的表达式。这是循环:
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都不是我的(这是我的主管),所以我很遗憾。您可以给予任何建议,我们将非常感谢。 谢谢!
答案 0 :(得分:2)
这样的东西会起作用(我真的不明白为什么你试图添加那些反斜杠,所以我只向你展示正确的方法):
for (i = 0; i < myList.length; i = i + 1) {
if ($("input[name='" + myList[i] + "']")[0].checked) {
string += myList[i] + "=" + myList[i] + "&";
}
}
一条注意事项:如果您要生成查询字符串,请不要忘记使用encodeURIComponent()
!
答案 1 :(得分:1)
这样的事情?
var query = "?";
$('input:checked').each(function(index) {
query += this.name + "=" + this.value + "&";
});
您可以修改选择器以仅获取所需的复选框。