包含HTML的连接字符串无法正常工作

时间:2011-04-18 13:25:04

标签: javascript jquery html

基本上这里是代码的工作线(jquery / javascript):

$('<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+']"

但它似乎并不喜欢这一点。我对这种结论感到有些困惑,所以如果有人能向我解释,我会很感激。

4 个答案:

答案 0 :(得分: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'); 

答案 1 :(得分:0)

一切正常,here's a demo

检查checkbox会显示此输出:

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

尝试从该jsfiddle中复制并粘贴该行,看看是否有效......

答案 2 :(得分:0)

我在jsfiddle中尝试了上面的代码,但没有遇到任何问题

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

尝试使用parseInt ....也可以详细说明你的问题。

答案 3 :(得分: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