在html中使用包含空格的变量设置“value”属性

时间:2013-01-13 11:50:12

标签: javascript html

我是HTML / JS的新手,所以如果这是一个基本的问题,我会道歉...我试图在网上查看,但无法找到解决方案。

我正在使用JS代码来创建HTML。我试图设置一个“值”属性与包含空格的var(带空格的字符串)。检查chrome中的值时,我可以看到字符串设置不正确。

这是我的JS代码:

var templateArray = templateString.split("\t");
for (var i = 0; i < templateArray.length; i++) {
  htmlTemplate.push("<option value="+templateArray[i]+">"+templateArray[i]+"</option>");
}

这是templateArray:

templateArray[0] = template_member_information
templateArray[1] = template - member information

这是我在使用chrome进行检查时得到的结果:

<option value="template" -="" member="" information="">template - member information</option>
<option value="template_member_information">template_member_information</option>

3 个答案:

答案 0 :(得分:2)

不要编写原始HTML,而只存储值,然后动态创建DOM元素。

假设您拥有名为values的数组中的所有值都有这样的代码来填充下拉列表,其中包含具有以下值的项:(和文本等于该值)

var oDDL = document.getElementById("MyDropDownList");
for (var i = 0; i < values.length; i++) {
    var option = new Option();
    option.value = option.text = values[i];
    oDDL.appendChild(option);
}

通过这种方式,您不必乱用引号,代码更灵活。

Live test case

答案 1 :(得分:1)

为什么不简单地将你的价值放在引号之间?

htmlTemplate.push("<option value=\""+templateArray[i]+"\">"+templateArray[i]+"</option>");

请注意,对于包含引号的值,这仍然会失败,但失败次数会更少。

答案 2 :(得分:1)

你忘记了引号:

var str = "<option value='"+templateArray[i]+"'>"+templateArray[i]+"</option>";
htmlTemplate.push(str);