【发布时间】:2014-12-31 19:21:53
【问题描述】:
我正在创建一个带有成功函数的 ajax 调用,如下所示
for (i = 1; i < selector_names.length; i++) {
if (selector_names[i] == "placement") {
add_options = "";
for (j = 0; j < option_names[i].length; j++) {
add_options += "<div class='option-container'><input class='check-box-" + selector_names[i] + "' type='checkbox' id='" + option_names[i][j] + "' checked='checked'/><label class='option-label' for='" + option_names[i][j] + "'>" + option_names[i][j] + "</label></div>";
}
}
}
$("#Placement").next().append(add_options);
这些是我应用于 div、复选框和标签的样式:
.option-container {
padding:1% 1% 1% 0%;
}
input {
postion:relative;
vertical-align:middle;
height:12px;
width:12px;
border-radius: 50px;
}
.option-label {
margin:2%;
vertical-align:middle;
font-family: sans-serif;
font-size: 12px;
color:#000;
cursor:pointer;
}
但是,与我手动创建的元素相比,动态添加的元素的样式不同。为什么会这样?
这是它的样子,前 2 个复选框是手动创建的,接下来的两个是动态生成的。我要附加的#Placement div 默认情况下是隐藏的,单击标题时会展开。
差异很小但很明显。
当我修改 CSS 时,它适用于两种类型的元素,默认和 jquery 创建的元素之间的差异仍然存在。例如,如果我增加 .option-container 的边距,两者都会增加,但相对差异仍然存在。
手动创建的复选框的 HTML:
<div class="option-container">
<input class="check-box-placement" type="checkbox" id="pdpv1" checked="checked"/>
<label class="option-label" for="pdpv1">pdpv1</label>
</div>
<div class="option-container">
<input class="check-box-placement" type="checkbox" id="pdph1" checked="checked"/>
<label class="option-label" for="pdph1">pdph1</label>
</div>
【问题讨论】:
-
你能把那两个手动创建的复选框的 HTML 代码贴出来吗
-
演示也会有所帮助
-
修复无效标记(删除关闭
</span>标签)并重试 -
@Andreas 我认为看似无效的标记在那里,因为它假定在到达那里之前打开了两个 span 标签。这可能是一个“好的做法,拜托”候选人。
-
@Frederik.L 如果是这样,结束标签必须放在
div.option-container之前,而不是紧随其后... - 尽管如此,标记在任何一种情况下都是无效的