2013-05-02 48 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/樣品