检查输入是否为空,如果不是,则将类添加到父div
我有很多这样的输入:
<div class="fg-line">
<input type="text" class="form-control fg-input place-edit placeInformation" id="place_name">
<label class="fg-label">Place Name</label>
</div>
<div class="fg-line">
<input type="text" class="form-control fg-input place-edit placeInformation" id="place_address">
<label class="fg-label">Place Address</label>
</div>
我从API获取一些数据,然后附加到这些输入(以便用户可以编辑)。
这工作正常。 问题是我想为此添加一个类:
<div class="fg-line">
这很简单,如果我只有这些和一个输入中的一个,但由于我有多个,我需要一些方法来检查每个输入,如果不是空的,添加类fg-toggled
,使行变成:
<div class="fg-line fg-toggled">
如果我只有一个输入,我会这样做:
if (('#place_name').value != '' || ('#place_name').value != ('#place_name').defaultValue) {
$('.fg-line').addClass('fg-toggle')
}
但是我不知道如何做到这一点,而不必为每个班级写作(有30+)。 有没有办法迭代这个莫名其妙? 我试着检查.place-edit
但由于它是一个类,如果任何与类的输入不为空,那么它们都会添加新的类。
简单地遍历每个输入并使用.closest()查找父级。
$('.placeInformation').each(function() {
var $input = $(this);
if ($input.val()) {
var $parent = $input.closest('.fg-line');
$parent.addClass('fg-toggled')
}
});
示例plunkr
可以使用filter()
$('.fg-line').has('.placeInformation').filter(function(){
return !$(this).find('.placeInformation').val()
}).addClass('fg-toggled')
不知道应该是什么样的“默认”或如何声明。 可以在数据属性中设置并添加||
以上过滤条件
使用each()和nearest()试试这个:
$(".fg-input").each(function() {
if ($(this).val() != '') {
$(this).closest(".fg-line").addClass('fg-toggle');
}
})
.fg-toggle
{
color:green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="fg-line">
<input type="text" class="form-control fg-input place-edit placeInformation" id="place_name">
<label class="fg-label">Place Name</label>
</div>
<div class="fg-line">
<input type="text" class="form-control fg-input place-edit placeInformation" id="place_address">
<label class="fg-label">Place Address</label>
</div>
链接地址: http://www.djcxy.com/p/83521.html
上一篇: Check if input is empty, if not, add class to parent div
下一篇: Multiple Knockout viewmodels with Asp.Net Core ViewComponents