在循环中我从json获取值,并在输入复选框中输入值和文本,但是我得到的错误是outupt,它与属性值的文本值不同
我的循环:
$.map(data["allLocales"], function(value, i){
if(i % 5 === 0 ){
col0 += "<label><input value="+ value.name +" type='checkbox' />"+value.name+"</label>"
} else if(i % 5 === 1) {
col1 += "<label><input value="+ value.name +" type='checkbox' />"+value.name+"</label>"
} else if(i % 5 === 2) {
col2 += "<label><input value="+ value.name +" type='checkbox' />"+value.name+"</label>"
} else if(i % 5 === 3) {
col3 += "<label><input value="+ value.name +" type='checkbox' />"+value.name+"</label>"
} else if(i % 5 === 4) {
col4 += "<label><input value="+ value.name +" type='checkbox' />"+value.name+"</label>"
}
})
错误的htmls示例:
<label class="blue"><input value="Italian" type="checkbox">Italian</label>
<label class="blue"><input value="Italian" (italy)="" type="checkbox">Italian (Italy)</label>
<label class="blue"><input value="Italian" (switzerland)="" type="checkbox">Italian (Switzerland)</label>
这里有什么问题..?我正在查看属性和文本值应该是相同的
答案 0 :(得分:2)
您似乎没有正确引用您的结果,这在处理空格时尤其重要。例如,
"<label><input value="+ value.name +" type='checkbox' />"+value.name+"</label>"
当用Italian (italy)
喂养时,呈现为:
<label><input value=Italian (italy) type='checkbox' />Italian (italy)</label>
然后根据HTML5规范将 (italy)
视为空白属性,并将其赋值为""
。
要解决此问题,请在输出值的位置附近添加引号:
"<label><input value='"+ value.name +"' type='checkbox' />"+value.name+"</label>"
现在应该呈现:
<label><input value='Italian (italy)' type='checkbox' />Italian (italy)</label>
您可能还想考虑转义输出值中可能出现的任何'
个字符,但是没有证据表明它们是您当前数据集的一部分。