您好 我有一个div元素,其中包含一个像这样的复选框列表
<ul>
<li><input type="checkbox" ID="check1" /><label for="check1">Monday</label></li>
<li><input type="checkbox" ID="check2" checked="checked"/><label for="check2">Tuesday</label></li>
<li><input type="checkbox" ID="check3" /><label for="check3">Wednesday</label></li>
<li><input type="checkbox" ID="check4" checked="checked"/><label for="check4">Thursday</label></li>
</ul>
我希望在“星期二 - 星期四”之类的字符串中检查值。所以我写了这个非常简洁的jQuery指令
$('input:checked', 'ul').next().text()
这给我'星期二星期四'。 我找不到传递分隔符的方法并且有'星期二 - 星期四'
答案 0 :(得分:5)
尝试类似
的内容$('input:checked', 'ul').map(function(){
return $(this).next().text();
}).get().join('-');
答案 1 :(得分:3)
您需要使用each
功能
var input = '';
$('input:checked', 'ul').each(function{
input += $(this).next().text() + "separator";
});
答案 2 :(得分:1)
使用aregex?
var str =$('input:checked', 'ul').next().text().replace( /([a-z])([A-Z])/g, "$1-$2");
alert(str);
修改过的小提琴也只是忘了让它处理超过2个
<强>释强>
请不要注意一个正则表达式专家,所以我的解释可能不是100%准确
.replace()是一个javascript函数,可以替换文本字符串。它可能需要Regular expression
在示例中我给正则表达式介于/ /反斜杠第一部分
之间[a-z]
说找小写字母
在正则表达式的第二部分
[A-Z]
说找大写字母
将它们放在括号中表示我们需要小写后跟大写
然后“g”表示要进行全局替换,即在找到第一组之后再次执行,直到找不到更多
然后在正则表达式之后我们需要告诉它我们想要用它来替换它
$1
和
$2
是来自正则表达式的变量赋值,我们在它们之间加上连字符以给出我们想要的结果
答案 3 :(得分:0)
试试这个:
function getDaysString(){
var returnValue = "";
$("input:checked+label", "ul").each(function(){
returnValue += $(this).text() + "-";
});
return returnValue.replace(/-$/, "");
}
答案 4 :(得分:0)
checkedBoxes = new Array();
$('input').each(function(){ checkedBoxes.push($(this).next().text()+'-') });
checkedBoxes.join('-');
答案 5 :(得分:0)
$(document).ready(function() {
var days = $.map($("input:checked"), function(element, index) {
return $(element).next().text();
}).join("-");
alert(days);
});