javascript - 如何遍历 div 中的 ul 元素并在提交时单独隐藏它们?

标签 javascript jquery css node.js express

在我使用 express 的 Node 应用程序中,我有一个创建非事件公司列表的 View 函数,每个公司都有两个提交输入类型“事件”和“删除”。我希望能够点击提交并隐藏该个人 ul。但是,我不太确定如何单独迭代。每次我尝试时,我最终都会隐藏所有元素。这是我的 View 函数:

function inactiveFiltered(companyObject) {
    return `
        <ul class="companyinfo">
            <li class="list-info">${companyObject.company_type}</li>
            <li class="list-info">${companyObject.company_name}</li>
            <li class="list-info">${companyObject.company_location}</li>
            <li class="list-info">${companyObject.company_phone}</li>
            <br>
            <li class="list-buttons">
                <form action="/activeList" method="POST" class="myform">
                    <input type="hidden" name="companyId" value="${companyObject.id}">
                    <input type="submit" value="Active">
                </form>
                <form action="/deletecompany" method="POST">
                    <input type="hidden" name="companyId" value="${companyObject.id}">
                    <input type="submit" value="Delete">
                </form>
            </li>
            <br>
        </ul>
    `
}

function inactiveList(arrayOfCompanies){
    const companyItems = arrayOfCompanies.map(inactiveFiltered).join('');

    return `
        <div class="list inactive-list">
            ${companyItems}
        </div>
    `
}

module.exports = inactiveList;

一个函数接受一组公司,然后创建一个公司对象。现在这是最新的 JQuery 尝试,但正如我所说,它隐藏了所有 ul 元素:

                $(document.body).submit(function() {
                    $('.companyinfo').each(function(i) {
                        $(this).hide();
                    })
                })

我已经坚持这个太久了,希望得到任何帮助。谢谢!

最佳答案

您同时隐藏了所有元素,因为选择器 .companyinfo使用类 companyinfo 返回所有元素的列表这些都是你的情况下的公司。这就是为什么它们同时被隐藏起来的原因

实现目标的一种方法是将 id 添加到 ul能够为每个公司单独解决这些问题的元素,如下所示:<ul id="companyinfo_${companyObject.company_name}" class="companyinfo"> .

然后添加一个方法hideCompany()替换 $(document.body).submit(function()部分:

function hideCompany(companyname) {
    $('#companyinfo_' + companyname).hide();
}

最后修改<input type="submit" value="Delete">阅读<input type="submit" value="Delete" onclick="hideCompany('${companyObject.company_name}')"> .

关于javascript - 如何遍历 div 中的 ul 元素并在提交时单独隐藏它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59364483/

相关文章:

javascript - JS 多张图片上传和预览并写出它的属性

javascript - 如何编写 Chrome 扩展?

javascript - 返回数组的属性

javascript - 仅限 JQuery Slide (this) 元素

javascript - 发光效果不起作用

css - 关键帧动画不适用于 :hover in moz and 的元素

Javascript 登场——从 Chrome 控制台到小书签

jquery - Stripe 结账模态 : Prefill billing address

javascript - 如何使用 0-100 的 ondrag 更新显示范围元素值?

css - Webdriver.io 如何根据页面上类似元素的数量选择和更改元素