要在字段中显示的JavaScript JQuery字符串变量
我正在使用JavaScript JQuery,当我试图在字段中显示变量的内容时,它不起作用。 这是我的代码:要在字段中显示的JavaScript JQuery字符串变量,javascript,jquery,Javascript,Jquery,我正在使用JavaScript JQuery,当我试图在字段中显示变量的内容时,它不起作用。 这是我的代码: function editEvolution(pos, nature, desc, di) { $('#diE').val(di); $('#natureE').val(nature); $('#descE').val(desc); $('#BtnAddEditEvo').attr('value', "Update"); $(
function editEvolution(pos, nature, desc, di) {
$('#diE').val(di);
$('#natureE').val(nature);
$('#descE').val(desc);
$('#BtnAddEditEvo').attr('value', "Update");
$('#BtnAddEditEvo').attr('onclick', "doEditEvolution("+pos+")");
}
谢谢你的帮助
如果vars nature desc是字符串,则字段
$('#diE')
、$('#nature')
和$('#descE')
的值不会改变,但如果它是一个数字,则会起作用。问题是,您混合了原生JS、内联JS和jQuery世界中最差的内容。你从来没有把代码放在一个字符串中,句号。如果你这样做了,你就是做错了
所以。。如何做好这件事
$('#BtnAddEditEvo').val('Update').on('click', function() {
doEditEvolution(pos);
});
如果您在同一对象上多次调用
editEvolution
,请在之前添加.off('click')
。on(…)
调用以解除先前处理程序的绑定。首先不要使用attr设置onclick
我会解释什么是错的
$('#BtnAddEditEvo').attr('onclick', "doEditEvolution("+pos+")");
如果pos=“foo”
,它将呈现为
<div onclick="doEditEvolution(foo);"></div>
为什么数字起作用?因为数字不需要引号。它打了一个有效的电话。它呈现为:
<div onclick="doEditEvolution(3);"></div>
您应该使用
.val()
设置值,真的吗.attr('onclick'
…真的吗?如果您有一个JSFIDLE供我们使用,这将非常有帮助。顺便说一句,使用引号也是一个坏主意,因为如果字符串包含引号,它会断开。JSON.stringify()
会更好。更不用说它仍然是垃圾,因为整个“将代码放入字符串”部分…但我正在寻找变量foo你是否意识到你正在做的是:var myString=“asdf”+pos+“qwert”;
它不是对变量的引用,它是一个字符串……是的,我知道你的意思,它非常有用,谢谢你。我不太了解解决方案,但问题总是在这里,因为我的问题不在按钮,而在字段中显示变量值。它们是什么类型的字段?
?它们是“文本”假设ID是正确且唯一的,那么使用.val()
输入应该可以工作。是的,对于firebug,我看到VAR的值是正确的,非常奇怪的是,当输入是数字时,它可以工作!
<div onclick="doEditEvolution(3);"></div>
$('#BtnAddEditEvo').on('click', function() { doEditEvolution(pos); });