将所有选中的复选框 ID 放入一个字符串中
Putting all checked checkbox id's into an string
我有一个带有不同 id 的复选框列表,我想将它们全部放入这样的数组中:
var my_string = "champion='id1' OR champion='id2' OR champion='id3' OR champion='id4'"
你可以说我有一个这样的html:
<ul>
<li><input type="checkbox" id="id1"/></li>
<li><input type="checkbox" id="id2"/></li>
<li><input type="checkbox" id="id3"/></li>
<li><input type="checkbox" id="id4"/></li>
</ul>
我该如何使用jquery/javascript来做到这一点?
以下内容适用于您的特定示例。 它查询所有input
元素,使用"champion=id"构建一个数组,然后用单词"OR"连接数组。
var checks= document.querySelectorAll('input');
var s = [];
for(var i = 0 ; i < checks.length ; i++) {
s.push("champion='"+checks[i].id+"'");
}
var my_string = s.join(' OR ');
alert(my_string);
<ul>
<li><input type="checkbox" id="id1"/></li>
<li><input type="checkbox" id="id2"/></li>
<li><input type="checkbox" id="id3"/></li>
<li><input type="checkbox" id="id4"/></li>
</ul>
这会将页面上复选框的所有输入的 id 获取到包含 id 值的数组中。
$(function() {
var arr = new Array();
$("input[type='checkbox']").each(function(i, v) {
arr.push($(v).attr("id"));
});
})
要获取所有复选框,您可以使用相应的 CSS 选择器:
var checkedBoxes = document.querySelectorAll( 'input[type="checkbox"]:checked' );
console.log( checkedBoxes );
此时,您有一个 DOM NodeList,您可以直接迭代它或将条目传输到数组中。
// print all ID's
for( var i = checkedBoxes.length; i--; ) {
console.log( checkedBoxes[i].id );
}
// store ID's into flat array
var idList = [];
for( var i = checkedBoxes.length; i--; ) {
idList.push( checkedBoxes[i].id );
}
console.log( idList );
如您所见,您甚至不需要jQuery来完成如此简单的任务。
这个?
function calc(){
var q = ""
$("input[type=checkbox]:checked").each(function(){
if (q != "") q += " or "
q+= " champion = '" + $(this).attr("id") + "'"
})
return "var myString = '"" + q + "'"";
}
参见 JSFIDDLE http://jsfiddle.net/alemarch/nfryb2wj/
你在寻找这样的东西吗?
var champions = [];
function getChampions() {
champions = $('li input:checked').map(function(){ return this.id }).get();
$('#x').html( JSON.stringify(champions) );
}
$('input').on('change',getChampions);
getChampions();
input:before {
content: attr(id);
margin-left: 1.5em;
}
#x {
padding: 1em;
background-color: #FED;
border: 1px solid gray;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li><input type="checkbox" id="id1"/></li>
<li><input type="checkbox" id="id2"/></li>
<li><input type="checkbox" id="id3"/></li>
<li><input type="checkbox" id="id4"/></li>
</ul>
<pre id="x" title="debug"></pre>
相关文章:
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 制作一个regex来验证只有一个数字的字符串
- 将html元素插入到文本字符串中,以匹配另一个html字符串
- NodeJS在一个较大的字符串中获取一个字符串的索引
- jquery从2个json字符串构建一个复选框表单
- 在Javascript中将一个值和字符串数组转换为if语句
- Javascript:用while循环在给定的count参数中重复一个字符串
- 如何使用另一个字符串作为模板从字符串中提取数据
- 用jQuery将字符串从一个类替换为另一个类
- 使用javascript或angularjs特定过滤器搜索字符串中第一个img标记的json值
- 如何检查一个字符串的所有字符是否都存在于另一个字符串中
- JavaScript:如何创建一个具有字符串名称的对象
- 如何从 javascript 中可能具有一个或多个图像的字符串中仅获取图像名称
- 在不使用循环的情况下,从一个数据库字符串值向javascript数组添加多个对象
- 从表单中动态生成一个字符串,传递给通过AJAX加载的PHP文件
- 当我JSON.stringfy(对象)时,我得到一个疯狂的字符串作为值
- 我可以使用JS一次使用JSON数组中的一个字符串吗
- 使用javascript替换字符串中除第一个和最后一个之外的所有字符
- 获取一个对象´s属性的名称使用字符串
- 删除一个“;从javascript中的字符串末尾