2011-04-18 70 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