JavaScript - 在函数内连接 2 个参数不起作用
JavaScript - Concatenating 2 parameters inside a function not working
我正在尝试解析 2 个数字作为函数saveQuestion
函数的参数,但它不起作用。
$("#questionRow")
.append('<input type="submit" class="btn btn-default" id="saveQuestion'
+ addSectionCount + '" value="Save question '
+ addSectionCount + '" onclick="saveQuestion('
+ addOpSectionCount + ''',''' addSectionCount + ')" ></div>');
如果您只是使用 jQuery 来注册正确的回调函数而不是使用 90 年代风格的内联事件处理程序,那么它会不那么脆弱并完全避免这个问题:
$('<input type="submit" />')
.attr('id', 'saveQuestion' + addSectionCount)
.val('Save question ' + addSectionCount)
.on('click', function() {
saveQuestion(addOpSectionCount, addSectionCount);
})
.appendTo('#questionRow')'
还要注意jQuery函数的其他用途,以避免在HTML字符串中使用字符串连接。
注意:我已经反转了append
,以便链接的.on
调用适用于新创建的元素,而不是#questionRow
。
注意 2:我通常会使用 $('<el>', {id: ..., val: ...})
但 ISTR,MSIE 对输入元素的语法有(有?
正如 Luca 提到的,你缺少一个 + 运算符。您也没有在 saveQuestion 的参数中添加足够的单引号来格式化它。这应该有效:
$("#questionRow")
.append('<input type="submit" class="btn btn-default" id="saveQuestion'
+ addSectionCount + '" value="Save question '
+ addSectionCount + '" onclick="saveQuestion('''
+ addOpSectionCount + ''',''' + addSectionCount + ''')" ></div>');
});
正如其他人所提到的,由于您无论如何都在使用 jQuery,因此您应该使用 jQuery 将单击事件处理程序附加到输入:
$('#saveQuestion'+addSectionCount).on('click', function() {
// do stuff
});
您似乎在代码末尾错过了 + 运算符
$("#questionRow")
.append('<input type="submit" class="btn btn-default" id="saveQuestion'
+ addSectionCount + '" value="Save question '
+ addSectionCount + '" onclick="saveQuestion('
+ addOpSectionCount + ''','''
+ addSectionCount + ')" ></div>');
相关文章:
- setTimeout刷新,毫秒参数不起作用
- 筛选器's的第二个参数不起作用
- JavaScript - 在函数内连接 2 个参数不起作用
- jQuery 参数不起作用
- 参数不起作用的角度路线
- 为什么此按钮的点击参数不起作用
- ng路由传递参数不起作用
- 数据表后请求参数不起作用
- JSON字符串参数不起作用
- 样式的Javascript函数参数不起作用
- onclick事件的转义参数不起作用
- 参数不起作用的Chrome扩展-js
- Javascript 函数参数不起作用
- 在函数中插入输入值作为参数不起作用
- React-router path参数不起作用
- 角度 UI 路由器 - 状态查询字符串参数不起作用
- 在javascript函数中传递参数不起作用
- Angular的路由和参数不起作用
- 在for中传递onClick的动态参数不起作用
- jQuery中的get url参数不起作用