【问题标题】:remove div with php if class exists如果类存在,则使用 php 删除 div
【发布时间】:2014-10-24 12:48:30
【问题描述】:

我有 2 个 div,如果其中一个显示为 class="goodbye" - 如何使用 php 删除另一个 div?

或者我必须使用 jQuery 吗?

<!-- this div should not show if the below class="goodbye" is on the page -->
<div class="hello">
  Hello
</div>

<div class="goodbye">
  goodbye
</div>

【问题讨论】:

  • 对以下答案有任何反馈吗?

标签: php css class remove-if


【解决方案1】:

Javascript,而不是 PHP。

if ($('.goodbye').length > 1) {
    $('.hello').hide();
}

【讨论】:

  • 这不是普通的 Javascript -> 它是 jQuery。 @user3544484 不要忘记包含 jQuery 库
  • caramba: 当然可以,但是在 Javascript 中使用 js 库仍然是 Javascript,所以从技术上讲我是准确的。
  • @rollingBalls 你的回答很好!我想说的是,如果你说它是 jQuery 会更好,所以提问者知道他必须包含 jQuery,因为如果他只是把它放在 &lt;script&gt; 标签中,它就行不通
  • @caramba:我同意,我不是故意要冒犯的意思,如果听起来像这样,对不起
【解决方案2】:

PHP 作为一种服务器端脚本语言,无法操作 DOM。如果您用来评估 &lt;div&gt; 的显示的条件是在服务器端处理的,那么您可以使用 PHP 来回显一个 &lt;div&gt; 或另一个。否则,使用 jQuery 或 JavaScript 来操作 DOM 客户端。

回答直接问题。使用 PHP 删除它:

if($hello)    {
    echo "<div class=\"hello\">Hello</div>";
}   else   {
    echo "<div class=\"goodbye\">goodbye</div>";
}

【讨论】:

    【解决方案3】:

    你不能用 PHP 来做到这一点,因为它是一种服务器端语言。呈现页面后,您将不得不使用客户端语言。是的,你可以使用 jQuery(Javascript):

    //when to handle..
    $("input").click(function() {
        $(".hello").toggle();
        $(".goodbye").toggle();
    });
    

    http://jsfiddle.net/kfhb7gzq/

    【讨论】:

      【解决方案4】:

      这是一个使用兄弟选择器的 CSS 选项。 If .hello is sibling to .goodbye: display: none;

      .goodbye + .hello {
          display: none;
      }
      

      <div class="goodbye">
          goodbye
      </div>
      
      <div class="hello">
          Hello
      </div>
      

      此解决方案需要重新排序元素,因为同级选择器不会选择前一个。

      【讨论】:

        【解决方案5】:

        一旦页面被渲染,你就不能在 PHP 中做这件事了……改用 jQuery。有很多不同的方法可以做到这一点。

        使用.is(":visible"));查看类是否可见。

        试试这个例子:

        $('#clickme').hover(function () {
            $('.hello').hide();
            $('.goodbye').show();
            alert($('.goodbye').is(":visible"));
        }, function () {
            $('.goodbye').hide();
            $('.hello').show();
            alert($('.goodbye').is(":visible"));
        });
        

        JSFiddle Demo

        【讨论】:

        • 点赞可见,但为什么悬停?
        • @Brian 只是一个例子,看看是否可见是有效的
        猜你喜欢
        • 2014-02-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-24
        • 2016-07-08
        • 1970-01-01
        相关资源
        最近更新 更多