javascript - JQuery隐藏/显示最接近的div

标签 javascript jquery

当用户单击某个图标时,我想隐藏/显示适合该操作的相关 div。

这是我使用的 JQuery:

$('.aTask').on('click','.descHide',function(){
    $(this).closest('.taskDesc').hide();
    $(this).closest('.descShow').show();
    $(this).closest('.descHide').hide();
});

$('aTask').on('click','.descShow',function(){
    $(this).closest('.taskDesc').show();
    $(this).closest('.descShow').hide();
    $(this).closest('.descHide').show();
});

$('#showTasks').on('click','.delete',function(){
    $(this).closest('.aTask').remove();
});

但预期的操作并未发生,如 JSFIddle 所示。在我点击减号的地方,应该会出现一个加号,并且下面的文本应该消失或出现。

最佳答案

使用.parent().find(...)而不是.closest(...)。此外,id 必须是唯一的。

Fiddle

$('.aTask').on('click', '.descHide', function () {
    $(this).parent().find('.taskDesc').hide();
    $(this).parent().find('.descShow').show();
    $(this).parent().find('.descHide').hide();
});

// you had a typo here $('aTask')
$('.aTask').on('click', '.descShow', function () {
    $(this).parent().find('.taskDesc').show();
    $(this).parent().find('.descShow').hide();
    $(this).parent().find('.descHide').show();
});

$('#showTasks').on('click', '.delete', function () {
    $(this).closest('.aTask').remove();
});

关于javascript - JQuery隐藏/显示最接近的div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27215467/

相关文章:

javascript - JS/CSS : Preload images from the HTML file while they are hidden

javascript - 迭代 JSON 对象并定期显示结果

javascript - 如何包含 jQuery?

javascript - 如何使用 Javascript 从输入框值中获取总和?

javascript - 占位符删除焦点

javascript - 在 IOS 应用 Webview 中运行 Angular 应用

javascript - 基于表格单元格按钮动态访问td

javascript - 将 Golang 正则表达式转换为 JS 正则表达式

javascript - 如果未设置 php session 变量,如何在窗口加载时打开 bootstrap4 弹出窗口?

jquery - 使用 CSS 或 jQuery 将 HTML 中的匹配字符串与标题分开