2011-04-18 89 views
0

基本上這裏串聯字符串是一個代碼工作線(jQuery的/ JavaScript的):包含HTML不能正常工作

$('<label>Option ' + (i + 1) + '<span class="small">Enter text</span></label><input type="text" name="option[]"><input class="extra" type="checkbox" name="checks[]" value=' + i + '>').appendTo('#container'); 

i作品參與了上面的代碼。我要的是涉及的i這裏的值:

name="checks['+i+']"

,但它似乎沒有像concatinating該位。我對這個簡單的問題有些困惑,所以如果有人能向我解釋,我會很感激。

+2

是什麼在HTML吐出? – Dave 2011-04-18 13:27:08

+3

「不起作用」究竟意味着什麼?它必須工作。 – duri 2011-04-18 13:27:49

+0

好吧,它似乎並沒有協調這一點:'name =「checks ['+ i +']」' – buymypies 2011-04-18 13:29:08

回答

0

沒有看到問題。 爲了便於閱讀/調試,試

var html = '<label>Option ' + (i + 1) + '<span class="small">Enter text</span></label>'+ 
'<input type="text" name="option['+i+']">'+ 
'<input class="extra" type="checkbox" name="checks['+i+']" value="'+i+'">' 
$(html).appendTo('#container'); 
0

它工作正常,here's a demo

檢查的checkbox顯示輸出:

<input class="extra" type="checkbox" name="checks[0]" value="0"> 

嘗試複製和粘貼行指出的jsfiddle,看看是否能工程...

0

我曾嘗試在的jsfiddle但力上面的代碼得到任何問題,使用parseInt函數

for(i = 0 ; i < 2; i++){ 
var html = '<label>Option ' + (i + 1) + '<span class="small">Enter text</span></label>'+ 
'<input type="text" name="option['+i+']">'+ 
'<input class="extra" type="checkbox" name="checks['+i+']" value="'+i+'">'; 
alert(html) 
    } 

嘗試....也可以爲您詳細說明您的問題。

+0

在_i_上使用parseInt這會浪費處理 – mplungjan 2011-04-18 14:16:24

0

將您的html文本保存爲數組元素,並且它們更易於閱讀和維護。還有可能更快的連接。

var htmlText = [ 
    '<label>Option ' + (i + 1) + '<span class="small">Enter text</span></label>', 
    '<input type="text" name="option[]">', 
    '<input class="extra" type="checkbox" name="checks[' + i + ']" value=' + i + '>' 
    ].join(""); 

Working Example