我有以下功能:
if ($(this).find('#sel').length == 0) {
var before = $(this).text();
var title_id = $(this).parent().attr('id');
$(this).html("<select id='sel' onchange='selectdone(this, title_id=title_id)>
...</select>");
}
从此我得到Uncaught ReferenceError: title_id is not defined
。为什么第4行的onchange
函数没有找到我之前定义的变量?我该如何正确地重写上述内容?
答案 0 :(得分:2)
你的意思是?
$(this).html("<select id='sel' onchange='selectdone(this, "+title_id+");'>...</select>");
答案 1 :(得分:0)
在此处使用字符串连接:
$(this).html("<select id='sel' onchange='selectdone(this, title_id=" + title_id +");'>...
答案 2 :(得分:0)
这种情况正在发生,因为您将“更改”处理程序定义为字符串的一部分,因此语言不知道那里有代码。
试试这个:
$(this).html($("<select/>", {
id: 'sel',
change: function() { selectdone(this, title_id) }
}));
既然你正在使用jQuery,你应该养成通过库而不是“onfoo”属性管理事件处理程序的习惯。