javascript - 检查输入是否为空,如果不为空,则将类添加到父div

标签 javascript jquery html

我有很多这样的输入:

<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')
    }

});

Sample plunkr

关于javascript - 检查输入是否为空,如果不为空,则将类添加到父div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45441914/

相关文章:

java - 从 MATLAB 运行 JavaScript 命令以获取 PDF 文件

javascript - 检查给定值是否为正数或最多保留两位小数的 float

html - 媒体查询与显示选项一起使用

javascript - Safari 类型错误 : 'undefined' is not a function (evaluating 'Object.assign(...)' )

javascript - 在 setTimeout 中调用超过 1 个函数

javascript - 旋转一束绝对定位的 div - <edited> 而不将它们放入容器中

html - 覆盖:hover style to be the same as normal style?

javascript - div 内可调整大小和可拖动的图像

javascript - 如果这个类包含,则隐藏其他类内容

jquery - 将 ajax 函数的结果放入 fancybox 1.3.4