用javascript在jquery中创建按钮
我正在寻找一种更有效的方法来构建按钮并为其分配操作。我正在使用的站点完全是用javascript编写的。我试图实现这一点:用javascript在jquery中创建按钮,javascript,jquery,button,Javascript,Jquery,Button,我正在寻找一种更有效的方法来构建按钮并为其分配操作。我正在使用的站点完全是用javascript编写的。我试图实现这一点: var test = $('<button/>', { text: i, //set text 1 to 10 id: 'btn_'+i, click: function () { alert('hi'); } }); var test=$(''{ text:i,//将text 1设置为10 id:'btn_'+i, 单击:函数(){a
var test = $('<button/>', {
text: i, //set text 1 to 10
id: 'btn_'+i,
click: function () { alert('hi'); }
});
var test=$(''{
text:i,//将text 1设置为10
id:'btn_'+i,
单击:函数(){alert('hi');}
});
但是我得到一个错误“uncaughterror:NotFoundError:DOM异常8”。是否有人有一个简洁的解决方案来创建带有Javascript指定操作的按钮?非常感谢您的帮助
谢谢 试试这个:
for(i=1;i<=10;i++)
{
var test = $('<button/>', {
text: i, //set text 1 to 10
id: 'btn_'+i,
click: function () { alert('hi'); }
});
$('body').append(test);
}
(i=1;i)的
“未捕获错误:NotFoundError:DOM异常8”
错误,因为您没有在代码中设置i
。因此它是未定义的
var test = $('<button/>', {
text: i, //set text 1 to 10 //<----here
id: 'btn_'+i,
click: function () { alert('hi'); }
});
var test=$(''{
text:i,//将text 1设置为10//这是一个“简洁的解决方案”,
试试这个,$('')。单击(函数(){}).attr('text',i).attr('id','btn_'+i).appendTo('body')
(请填写循环和其他内容:)尝试下面的代码
var i=0;
$(function () {
var test = $('<button/>', {
text: i,
class:'btn',
id: 'btn_' + i
});
i++;
var test1 = $('<button/>', {
text: i,
class:'btn',
id: 'btn_' + i
});
$(document).on('click','.btn',function(){
alert($(this).attr('id'));
});
$('#mydiv').append(test);
$('#mydiv').append(test1);
});
var i=0;
$(函数(){
var测试=$(''{
正文:我,
类别:'btn',
id:'btn_u'+i
});
i++;
变量test1=$(''{
正文:我,
类别:'btn',
id:'btn_u'+i
});
$(文档).on('单击','.btn',函数(){
警报($(this.attr('id'));
});
$('#mydiv')。追加(测试);
$('#mydiv').append(test1);
});
检查JSFIDLE上的工作示例检查此项。您的代码工作正常。您使用的是哪个版本的jquery?grrr…我粘贴了错误的代码,如果我用字符串值替换I,则会产生相同的错误。感谢您的建议,我将在一分钟后在这里进行测试
var i=0;
$(function () {
var test = $('<button/>', {
text: i,
class:'btn',
id: 'btn_' + i
});
i++;
var test1 = $('<button/>', {
text: i,
class:'btn',
id: 'btn_' + i
});
$(document).on('click','.btn',function(){
alert($(this).attr('id'));
});
$('#mydiv').append(test);
$('#mydiv').append(test1);
});