我正在使用JavaScript JQuery,当我尝试在字段中显示变量的内容时,它不起作用。有我的代码:
function editEvolution(pos, nature, desc, di) {
$('#diE').val(di);
$('#natureE').val(nature);
$('#descE').val(desc);
$('#BtnAddEditEvo').attr('value', "Update");
$('#BtnAddEditEvo').attr('onclick', "doEditEvolution("+pos+")");
}
提前感谢帮助。
字段 $('#diE')
、$('#natureE')
和 $('#descE')
的值如果变量性质 desc 是字符串,则不会改变,但如果它是一个数字,它就可以工作
问题是你混合了来自本机JS,内联JS和jQuery世界的最糟糕。你永远不会把代码放在字符串中,句点。如果你这样做,你就做错了。
那么..如何正确地做到这一点呢?
$('#BtnAddEditEvo').val('Update').on('click', function() {
doEditEvolution(pos);
});
如果对同一对象多次调用editEvolution
,请在.on(...)
调用之前添加.off('click')
以取消绑定以前的处理程序。
首先不要使用 attr 来设置点击...
我会解释什么是错的
$('#BtnAddEditEvo').attr('onclick', "doEditEvolution("+pos+")");
如果pos="foo"
,它将呈现为
<div onclick="doEditEvolution(foo);"></div>
看到问题了吗?它正在寻找一个可变foo
。您需要添加引号。
$('#BtnAddEditEvo').attr('onclick', "doEditEvolution('"+pos+"')");
^ ^
为什么数字有效?因为数字不需要引号。它进行有效的调用。它呈现为:
<div onclick="doEditEvolution(3);"></div>
你需要做的是以正确的方式使用jQuery并使用事件。
$('#BtnAddEditEvo').on('click', function() { doEditEvolution(pos); });
你应该用.val()
设置值