var sno=10;
row.insertCell(6).innerHTML="input type='button' value='edit' onclick='editRecord('sno');'";
我想将sno
值传递给另一个函数。
function editRecord(mySno){}
答案 0 :(得分:3)
尽量不要混合代码。
var newRow = row.insertCell(6),
input = document.createElement('input');
此方法不仅比字符串innerHTML快,它还允许您将输入作为JavaScript对象处理。
input.type = 'button';
input.value = 'edit';
input.onclick = editRecord;
您已创建了一个新行,但如果您没有创建新行,则可以清除该行中的代码:
newRow = (function clearHtmlElement (el){
var newEl = el.cloneNode();
el.parentNode.replaceChild(newEl, el);
return newEl;
}(newRow));
最后将输入附加到row元素:
newRow.appendChild(input);
然后您就可以使用属性保存您的值:
input.dataset.sno = 10;
或
input.setAttribute('data-sno', 10);
或者您可以将其保存到HTML元素中:
input.sno = 10;
function editRecord () {
var sno = this.sno
|| this.getAttribute('data-snow')
|| this.dataset.snow;
...
}
选择使用它的方式或像我在这里一样使用它们。现在您的函数中有sno
,更重要的是,它可以是您想要的JavaScript对象。
如果你想使用你在问题上定义的函数,那么当你定义onclick处理程序时,你将不得不这样做:
input.onclick = (function(){
var mySno = sno;
return function(){
editR(mySno);
};
}());
这里,使用范围,mySno
将在每次定义onclick处理程序时保存sno
的值的引用。但是这对于对象不起作用,所以只有数字或字符串可以工作......加上它有点难看。
答案 1 :(得分:1)
//当sno是一个整数时
var sno = 10;
row.insertCell(6).innerHTML ="输入类型='按钮'值='编辑' onclick =' editRecord(" + sno +");'";
//当sno是一个角色时
var sno =' C&#39 ;;
row.insertCell(6).innerHTML ="输入类型='按钮'值='编辑' onclick =' editRecord(\'" + sno +" \');'";
答案 2 :(得分:0)
editRecord('sno');
正在传递字符串' sno',您需要像这样传递变量:editRecord(sno);
答案 3 :(得分:0)
使用我为您撰写的以下专栏:
<强>代码
var sno=10;
row.insertCell(6).innerHTML="input type='button' value='edit' onclick='editRecord(\'"+sno+"\');'";
答案 4 :(得分:0)
从来没有你不能在双重quat或单一单人使用双重quat。 这不是真的。 &#34;为XXXXX&#34; YYYYY&#34; XXXX&#34; 您可以使用 &#34;为XXXXX&#39; YYYYY&#39;为XXXXX&#34; 要么 &#34;为XXXXX \&#34; YYYYY \&#34; XXXX&#34; 要么 &#34; XXXX&#34; +&#34; YYYYY&#34; +&#34; XXXX&#34;
var sno = 10; row.insertCell(6).innerHTML =&#34;输入类型=&#39;按钮&#39;值=&#39;编辑&#39;的onclick =&#39; editRecord(&#39; + SNO +&#39;);&#39;&#34 ;;
答案 5 :(得分:-1)
您已将此行传递给该行:onclick =&#39; editRecord(sno);&#39;
只需删除&#39;来自sno。