我正在构建一个jQuery脚本,我在理解一切是如何工作方面遇到了问题,所以基本上我要创建一个函数而不是重写很多代码,所以我就是这样做的:
$('.chkboxes').on("change", ":checkbox", function () {
if (this.checked) {
var yolo = this.id;
switch(yolo) {
case "chkBox1":
break;
case "chkBox2":
addfield("yolo" , "yolo", "text", "yolo");
break;
}
}
然后我有一个名为“addfield”的函数:
function addfield(class, name, type, id) {
var fieldstring = '<tr class=" ' + class + '"><td>' + name + '</td><td><input type="' + type + '" id="' + id + '" name ="' + name + '" /></td></tr>';
alert(fieldstring);
$(fieldstring).hide().appendTo(wrapper).fadeIn(999);
}
但我不能让它工作,我应该怎么做,我一直把功能视为java方法,但它不能像我希望的那样工作!任何帮助表示赞赏!
答案 0 :(得分:3)
您不能在变量名称中使用class
,var
,new
等关键字,因此您应该更改
function addfield(class, name, type, id) {
var fieldstring = '<tr class=" ' + class + '"><td>' + name + '</td><td><input type="' + type + '" id="' + id + '" name ="' + name + '" /></td></tr>';
alert(fieldstring);
$(fieldstring).hide().appendTo(wrapper).fadeIn(999);
}
到
function addfield(someArgRepresentsClass, name, type, id) {
var fieldstring = '<tr class=" ' + someArgRepresentsClass + '"><td>' + name + '</td><td><input type="' + type + '" id="' + id + '" name ="' + name + '" /></td></tr>';
alert(fieldstring);
$(fieldstring).hide().appendTo(wrapper).fadeIn(999);
}
使用变量名&#34;我的意思是使关键字变量名称。你可以像newClass
等一样编写smth。
$('.chkboxes').on("change", ":checkbox", function () {
var $this = $(this);
if ($this.is(':checked')) {
var yolo = $this.attr('id');
if (yolo == "chkBox1"){
break;
} else if (yolo == "chkBox2"){
addfield("yolo" , "yolo", "text", "yolo");
break;
}
}
}
第二个是this.id
,将其更改为$(this).attr('id')
顺便说一句,不要使用开关,在这种情况下,if().. else
会更好。