JavaScript 拼接字符串并用逗号隔开,如(1,2,3)& IE,火狐的问题_百度知 ...

发布网友

我来回答

4个回答

热心网友

尊敬的用户,您好!很高兴为您答疑。
  通过走读您的代码发现,您定义出来的遍历数组的方法,除了最后一个字符,每个在输出时都会加上",",故您的代码输出是由于您的编写所致。
  而火狐的兼容问题,在火狐下获取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);
});

}

热心网友

浏览器内核不一样,比如:
var ii = !-[1,];
alert(ii);
在IE和Firefox下执行的结果不一样的,这也就是平常用来判断浏览器类型的一种方法

热心网友

for (var i = 0; i < sub.length;i++ ) {
if (sub[i].checked == true) {

boxs += sub[i].names + ",";
}
}

boxs=boxs.substring(0,boxs.length-1);
这样就可以,吧最后的那个,给去掉了!
不管多少个!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com