JavaScript 拼接字符串并用逗号隔开,如(1,2,3)& IE,火狐的问题
functionlotDele(){varboxs="";varsub=document.getElementsByName("myCheckBox");for(vari...
function lotDele() {
var boxs="";
var sub = document.getElementsByName("myCheckBox");
for (var i = 0; i < sub.length;i++ ) {
if (sub[i].checked == true) {
if (i < (sub.length- 1)) {
boxs += sub[i].names + ",";
}
else {
boxs += sub[i].names;
}
}
}
alert(boxs);
var url = '<%= Url.Content("~/SystemManger/LotLogDele/")%>' + boxs;
alert(url);
var targetDiv = "#loglist"
$.get(url, null, function(result) {
$targetDiv.html(result);
});
}
这样如果我选中的是两个checkbox的话就总会出现(1,2,),如果是选中3个的话就正常了,alter出来的就是(1,2,3),是我的代码有问题吗?
而且这段代码在IE里面很正常,火狐就不能执行了,甚至连sub的长度都取不到,高手帮帮忙 展开
var boxs="";
var sub = document.getElementsByName("myCheckBox");
for (var i = 0; i < sub.length;i++ ) {
if (sub[i].checked == true) {
if (i < (sub.length- 1)) {
boxs += sub[i].names + ",";
}
else {
boxs += sub[i].names;
}
}
}
alert(boxs);
var url = '<%= Url.Content("~/SystemManger/LotLogDele/")%>' + boxs;
alert(url);
var targetDiv = "#loglist"
$.get(url, null, function(result) {
$targetDiv.html(result);
});
}
这样如果我选中的是两个checkbox的话就总会出现(1,2,),如果是选中3个的话就正常了,alter出来的就是(1,2,3),是我的代码有问题吗?
而且这段代码在IE里面很正常,火狐就不能执行了,甚至连sub的长度都取不到,高手帮帮忙 展开
4个回答
展开全部
尊敬的用户,您好!很高兴为您答疑。
通过走读您的代码发现,您定义出来的遍历数组的方法,除了最后一个字符,每个在输出时都会加上",",故您的代码输出是由于您的编写所致。
而火狐的兼容问题,在火狐下获取dom对象的标准写法应为:sub[i].getAttribute("names"),而您目前的sub[i].names;属于非标准写法,只有ie下可以通过。
希望我的回答对您有所帮助,如有疑问,欢迎继续咨询我们。
通过走读您的代码发现,您定义出来的遍历数组的方法,除了最后一个字符,每个在输出时都会加上",",故您的代码输出是由于您的编写所致。
而火狐的兼容问题,在火狐下获取dom对象的标准写法应为:sub[i].getAttribute("names"),而您目前的sub[i].names;属于非标准写法,只有ie下可以通过。
希望我的回答对您有所帮助,如有疑问,欢迎继续咨询我们。
展开全部
if (i < (sub.length- 1)) {
boxs += sub[i].names + ",";
}
else {
boxs += sub[i].names;
}
你这里不正是没到最后一个就加上一个,号么当然会出现两个checkbox的话就总会出现(1,2,),如果是选中3个的话就正常了,alter出来的就是(1,2,3)了。
还有firefox不支持 sub[i].names ,改成sub[i].getAttribute("names");
这样:
function lotDele() {
var boxs="";
var sub = document.getElementsByName("myCheckBox");
for (var i = 0; i < sub.length;i++ ) {
if (sub[i].checked == true) {
if (i >0 && i < sub.length) {
boxs += ',';
}
boxs += sub[i].getAttribute("names");
}
}
alert(boxs);
var url = '<%= Url.Content("~/SystemManger/LotLogDele/")%>' + boxs;
alert(url);
var targetDiv = "#loglist"
$.get(url, null, function(result) {
$targetDiv.html(result);
});
}
boxs += sub[i].names + ",";
}
else {
boxs += sub[i].names;
}
你这里不正是没到最后一个就加上一个,号么当然会出现两个checkbox的话就总会出现(1,2,),如果是选中3个的话就正常了,alter出来的就是(1,2,3)了。
还有firefox不支持 sub[i].names ,改成sub[i].getAttribute("names");
这样:
function lotDele() {
var boxs="";
var sub = document.getElementsByName("myCheckBox");
for (var i = 0; i < sub.length;i++ ) {
if (sub[i].checked == true) {
if (i >0 && i < sub.length) {
boxs += ',';
}
boxs += sub[i].getAttribute("names");
}
}
alert(boxs);
var url = '<%= Url.Content("~/SystemManger/LotLogDele/")%>' + boxs;
alert(url);
var targetDiv = "#loglist"
$.get(url, null, function(result) {
$targetDiv.html(result);
});
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for (var i = 0; i < sub.length;i++ ) {
if (sub[i].checked == true) {
boxs += sub[i].names + ",";
}
}
boxs=boxs.substring(0,boxs.length-1);
这样就可以,吧最后的那个,给去掉了!
不管多少个!
if (sub[i].checked == true) {
boxs += sub[i].names + ",";
}
}
boxs=boxs.substring(0,boxs.length-1);
这样就可以,吧最后的那个,给去掉了!
不管多少个!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
浏览器内核不一样,比如:
var ii = !-[1,];
alert(ii);
在IE和Firefox下执行的结果不一样的,这也就是平常用来判断浏览器类型的一种方法
var ii = !-[1,];
alert(ii);
在IE和Firefox下执行的结果不一样的,这也就是平常用来判断浏览器类型的一种方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询