0

我有 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>
4

5 回答 5

2

Javascript,而不是 PHP。

if ($('.goodbye').length > 1) {
    $('.hello').hide();
}
于 2014-08-30T20:17:49.503 回答
2

PHP 作为一种服务器端脚本语言,不能操作 DOM。如果您用来评估<div>' 的显示的条件是在服务器端处理的,那么您可以使用 PHP 来回显其中一个<div>。否则,使用 jQuery 或 JavaScript 来操作 DOM 客户端。

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

if($hello)    {
    echo "<div class=\"hello\">Hello</div>";
}   else   {
    echo "<div class=\"goodbye\">goodbye</div>";
}
于 2014-08-30T20:19:06.287 回答
0

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

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

http://jsfiddle.net/kfhb7gzq/

于 2014-08-30T20:25:50.067 回答
0

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

.goodbye + .hello {
    display: none;
}

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

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

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

于 2014-08-30T20:28:28.657 回答
-1

一旦页面被渲染,你就不能在 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 演示

于 2014-08-30T20:18:32.153 回答