javascript - jQuery 中 parent sibling 的操作

标签 javascript jquery jquery-selectors

这是我的 html 代码:

<div class="btn-group js_publish_management>
    <button class="btn btn-danger js_publish_btn">Not Published</button>
    <button class="btn btn-success js_publish_btn">Published</button>
    <button type="button" t-attf-class="btn btn-default dropdown-toggle" data-toggle="dropdown">
        <span class="caret"></span>
    </button>
    <ul class="dropdown-menu" role="menu">
        <li>
            <a href="#" class="js_publish_btn">
                <span class="css_unpublish">Unpublish</span>
                <span class="css_publish">Publish</span>
            </a>
        </li>
    </ul>
</div>

现在我想使用 jQuery 选择父级的同级按钮。

如果我点击任何<span> li 元素那么我如何对 <button> 执行某些操作 我不太了解 jQuery 选择器。预先感谢您的帮助。

相关演示JsFiddle

在上面的演示中,如果用户单击“否”按钮,它将变为“正在加载...” 我想要这样的:用户从下拉列表中单击 NO-2,然后 NO 按钮也应该变为“正在加载”

最佳答案

假设您也可以更改 HTML,则有更好的方法来同步按钮对。用 data- 属性装饰它们可能是使代码数据驱动的最简单方法。

您的 JSFiddle 有一些奇怪代码。 文档就绪事件仅适用于初始页面加载,而您似乎使用它来模拟使用循环的加载(这将不起作用,因为它将在同一浏览器框架上完成)。此外,文档加载不会返回 promise ,因此 .then 只会导致错误。

我用 loadData 函数替换了负载模拟,该函数返回一个 promise 并在 3 秒后完成。

我修改了您的代码,以便各个按钮都有一个 data-target 引用其匹配按钮(在下拉列表中或主按钮中)。

例如

<button id="Unpublish" data-target="#UnpublishLink" class="btn btn-danger js_publish_btn">No</button>

当单击按钮时,它会创建一个引用单击的按钮和匹配对的 jQuery 对象:

// Add any matching button
$el = $el.add($el.data('target'));

然后,它会在两个按钮上执行任何按钮登录(“正在加载...”等)。

$el.button('loading');
loadData().then(function (result) {
    $el.toggleClass("css_unpublished css_published");
    $el.button('reset');
}).fail(function (err, data) {
    $el.button('reset');
});

JSFiddle: http://jsfiddle.net/TrueBlueAussie/deC37/312/

关于javascript - jQuery 中 parent sibling 的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28326853/

相关文章:

javascript - 仅使用 javascript 生成和访问具有键值对的二维数组

jquery - 为 Fancybox 添加缩放功能

javascript - 根据 C# 内联代码的结果在 JavaScript 中创建正确的字符串

javascript - Angular 形式验证焦点

javascript - 奇怪的 IE,Javascript 只能在开发模式下工作(F12)

javascript - 如何使用 DIV 文本框 Onclick 的值而不是文本框 Onclick 来执行函数

Jquery仅选择div的一部分

javascript - 可滚动元素被 overlay div 阻塞

javascript - 这个简单的正则表达式确实很慢,为什么?

javascript - jQuery 缓动动画中使用哪些变量