我是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>
答案 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);
}
通过这种方式,您不必乱用引号,代码更灵活。
答案 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);