我有 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>
Javascript,而不是 PHP。
if ($('.goodbye').length > 1) {
$('.hello').hide();
}
PHP 作为一种服务器端脚本语言,不能操作 DOM。如果您用来评估<div>
' 的显示的条件是在服务器端处理的,那么您可以使用 PHP 来回显其中一个<div>
。否则,使用 jQuery 或 JavaScript 来操作 DOM 客户端。
直接回答问题。使用 PHP 删除它:
if($hello) {
echo "<div class=\"hello\">Hello</div>";
} else {
echo "<div class=\"goodbye\">goodbye</div>";
}
你不能用 PHP 做到这一点,因为它是一种服务器端语言。呈现页面后,您将不得不使用客户端语言。是的,您可以使用 jQuery(Javascript):
//when to handle..
$("input").click(function() {
$(".hello").toggle();
$(".goodbye").toggle();
});
这是一个使用兄弟选择器的 CSS 选项。If .hello is sibling to .goodbye: display: none;
.goodbye + .hello {
display: none;
}
<div class="goodbye">
goodbye
</div>
<div class="hello">
Hello
</div>
此解决方案需要重新排序元素,因为兄弟选择器不选择前一个。
一旦页面被渲染,你就不能在 PHP 中做到这一点......改用 jQuery。有很多不同的方法可以做到这一点。
用于.is(":visible"));
查看类是否可见。
试试这个例子:
$('#clickme').hover(function () {
$('.hello').hide();
$('.goodbye').show();
alert($('.goodbye').is(":visible"));
}, function () {
$('.goodbye').hide();
$('.hello').show();
alert($('.goodbye').is(":visible"));
});