我知道这是一个非常愚蠢的问题但是我坚持这个问题我在jsp和表单中创建了一个表单我使用下拉列表提供了更改表格标签上的CSS的选项,如..."左对齐,右对齐,无"开始两个选项正常工作"无"选项功能是当我选择这个选项,所以删除两个选项应用的CSS,并显示此表单的默认设置............请建议我如何做... ............我在这里展示我的代码
JavaScript代码
function placement() {
var dropVal = $('#styleField').val();
if (dropVal == "la") {
$("._check").each(function(index) {
$('label').css("float", "left");
});
}
if (dropVal == "ra") {
$("._check").each(function(index) {
$('label').css("float", "right");
});
}
if (dropVal == "de") {
// $("._check").each(function(index) {
// $('._check').find('checkbox').css("float" , "left")
// $("float").remove();
});
}
}
这是我的代码,_check是一个应用于复选框
的类Html代码
<select id="styleField" name="styleOfField" class="form-control select2me" data-placeholder="Placement Of labels" onclick="placement();">
<option> - </option>
<option value="la"> Left Aligned </option>
<option value="ra"> Right Aligned </option>
<option value="de"> Default </option>
</select>
所以请帮助我...提前致谢
答案 0 :(得分:0)
要重置浮动,您需要设置float: none
:
$('label').css('float','none');
但您的代码还有其他问题。你没有明显的理由迭代每个_check
。 $('label')
将定位所有标签,无论是否存在任何._check
元素。
您是否在label
元素中寻找._check
?在这种情况下,您可以使用后代选择器选择它们,而不需要迭代结果,
.css
适用于整个集合:
$('._check label').css('float','none');
您似乎有两种默认行为选项。一个具有值"de"
,一个根本没有值。后者与placement
函数中的任何条件都不匹配。
此外,您向我们展示的代码具有无与伦比的括号,但我认为这可能只是一个粘贴问题。
您也可以使用classess执行此操作。这样你就不必手动设置float: none
,但是当你不需要时你可以省略设置浮动。
<强> CSS 强>
.la { float: left; }
.ra { float: right; }
<强>的JavaScript 强>
function placement() {
$('._check label')
.removeClass('la ra')
.addClass($('#styleField').val());
}
关于您注释掉的尝试的一些注意事项:
$('._check').find('checkbox')
会查找<checkbox/>
元素的所有class="check"
个子元素。如果您要搜索<input type="checkbox" />
,可以使用:checkbox
选择器。
$('float').remove()
会查找文档中的所有<float/>
元素并将其删除。
更新处理您的评论
现在您已经明确表示您希望所有标签都带有_check
类,但上面的代码并没有这样做。它选择具有检查类的元素的后代的所有标签。 您的代码选择所有标签,无论它们是否有检查类,并且由于您的迭代而反复执行。
如果您确实希望文档中的所有标签都有一个名为_check
的类,则代码为:
$('label._check').css('float','none');