2013-05-02 73 views
0

我正在寻找一种更有效的方式来构建按钮并为其分配操作。我正在使用的网站完全是用JavaScript编写的。我试图实现这一点:在javascript中创建按钮jQuery中的按钮

var test = $('<button/>', { 
    text: i, //set text 1 to 10 
    id: 'btn_'+i, 
    click: function() { alert('hi'); } 
}); 

但我得到一个错误“未捕获的错误:NotFoundError:DOM异常8”。有没有人有一个简洁的解决方案来创建按钮在Javascript中分配的操作?任何帮助是极大的赞赏。

谢谢!

+0

检查这个http://jsfiddle.net/QY7HD/。你的代码工作正常..你正在使用哪个版本的jquery? – PSL 2013-05-02 05:51:25

回答

0

这里是一个 “简洁的解决方案”, 试试这个,$('<button/>').click(function(){}).attr('text',i).attr('id','btn_'+i).appendTo('body') (请填写环和其他东西:)

1

试试这个:

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); 
} 
0

"Uncaught Error: NotFoundError: DOM Exception 8"

错误,因为你没有设置i你code..so它是不确定的......

var test = $('<button/>', { 
    text: i, //set text 1 to 10 //<----here 
    id: 'btn_'+i, 
    click: function() { alert('hi'); } 
}); 

,如果你需要我是值为1-10,那么你可以使用循环

$(document).ready(function(){ 
for(i=1;i<=10;i++) 
{ 
    var test = $('<button/>', { 
    text: i, //set text 1 to 10 //<----here 
    id: 'btn_'+i, 
    click: function() { alert('hi'); } 
    }); 
} 
}); 
+0

grrr ...我粘贴了错误的代码,如果我用字符串值替换i,则会生成相同的错误。感谢您的建议,我会在一分钟内在这里进行测试 – txcotrader 2013-05-02 06:08:51

0

试试下面的代码

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); 
}); 

检查工作的jsfiddle http://jsfiddle.net/vijaypatel/QgdsC/样品