如果'这个'上课是真的

时间:2017-12-14 18:50:38

标签: javascript jquery bootstrap-4

我正在使用此应用,您可以将API中的人员添加到应用中的列表中。每次添加人员时,都会创建一个新的Bootstrap卡。我试图弄清楚如何点击按钮"观看视频流"在某些情况下被禁用。如果用户是" LIVE"然后将类.popover_status_on添加到父元素。如果用户是" OFFLINE"然后添加班级.popover_status_off

我认为这将是一个快速修复问题,但我似乎比我预期的更麻烦。现在,这就是我正在查看的代码,我认为它不会工作,我绝对认为它会有:

if($('.card > .card-body > h2').hasClass('popover_status_off')) {
        $('.card > .card-body > button').prop('disabled', true);
      } else {
        return;
      }

我意识到当它被禁用时,它会禁用所有按钮,甚至是" LIVE"那些。所以我试图弄清楚是否有一种方法没有通过class / id指定我可以让它改变按钮的状态。我想也许正在使用"这个"会工作,但我不确定哪些代码可以用于此。

感谢您的反馈。

1 个答案:

答案 0 :(得分:2)

问题是在if语句中,jQuery选择器不限于THAT卡,它会查找所有卡中的所有按钮。

您的代码字面上说的是什么:

If there is card containing an h2 with class popover_status_off
    Then find all cards that have buttons and disable them
Else do nothing

试试这个:

 $('.card h2.popover_status_off').parents('.card').find('button').prop('disabled', true);

您不需要if语句。 jQuery的强大功能之一是,您可以在一个语句中识别元素并进行更改。