我正在尝试使用一个javascript函数来创建单独的按钮,然后我可以单击这些按钮来执行不同的js函数。我为js函数创建的每个按钮都有一个不同的参数。
此版本的函数有效。它创建了一个带有参数"addr2“的onclick valChange函数的新按钮。我希望"addr2“是一个可以根据需要更改的字符串,就像我在第二个版本中所做的那样。
html就是函数要放入新div的div。两个版本都将在testbox div中创建一个新按钮。版本1的按钮有效,并将在单击时执行警报valchange功能。版本2的按钮不执行该功能。我如何才能让版本2工作,为什么它目前不能工作?
<div id="testbox">
</div>
版本1,有效
function dostuff()
{
var newDiv = document.createElement('div');
var html = '<input type="button"onclick="valChange(`box1`)">;
newDiv.innerHTML = html;
$('#testbox').append(html);
}
版本2,不起作用
function dostuff()
{
var newDiv = document.createElement('div');
var i = "box1";
var html = '<input type="button" onclick="valChange(i)">';
newDiv.innerHTML = html;
$('#testbox').append(html);
}
如果按钮实际工作,则显示警报。
function valChange (divID)
{
alert("it worked" + divID);
}
发布于 2016-05-04 06:52:19
你这里漏掉了一些引号!
当前单击时,JS需要一个变量box1
而不是字符串(这正是您想要的)
function dostuff() {
var newDiv = document.createElement('div');
var i = "box1";
var html = '<input type="button" onclick="valChange(\''+ i +'\')">';
newDiv.innerHTML = html;
$('#testbox').append(html);
}
function valChange (divID) {
alert("it worked" + divID);
}
dostuff();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="testbox"></div>
在jQuery中的另一种方法是:
function dostuff() {
$inp = $("<input/>", {
type : "button",
value : "CLICK ME",
click : valChange
});
$("<div/>", {
append : $inp,
appendTo : "#testbox"
});
}
function valChange() {
alert("My value is: " + this.value);
}
dostuff();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="testbox"></div>
发布于 2016-05-04 06:52:07
var i未正确使用。
function dostuff()
{
var newDiv = document.createElement('div');
var i = "box1";
var html = '<input type="button" onclick="valChange(\''+i+'\')">';
newDiv.innerHTML = html;
$('#testbox').append(html);
}
发布于 2016-05-04 06:52:25
在您的第二个版本中,它将i视为一个字符串。这应该是可行的:
function dostuff()
{
var newDiv = document.createElement('div');
var i = "box1";
var html = '<input type="button" onclick="valChange(\'' + i + '\')">';
newDiv.innerHTML = html;
$('#testbox').append(html);
}
https://stackoverflow.com/questions/37015592
复制相似问题