我有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>
答案 0 :(得分:2)
Javascript,而不是PHP。
if ($('.goodbye').length > 1) {
$('.hello').hide();
}
答案 1 :(得分:2)
作为服务器端脚本语言的PHP无法操纵DOM。如果您用来评估<div>
的显示的条件是在服务器端处理的,那么您可以使用PHP来回显一个<div>
或另一个if($hello) {
echo "<div class=\"hello\">Hello</div>";
} else {
echo "<div class=\"goodbye\">goodbye</div>";
}
。否则,使用jQuery或JavaScript来操作DOM客户端。
回答直接问题。使用PHP删除它:
{{1}}
答案 2 :(得分:0)
您无法使用PHP执行此操作,因为它是服务器端语言。呈现页面后,您将不得不使用客户端语言。是的,你可以使用jQuery(Javascript):
//when to handle..
$("input").click(function() {
$(".hello").toggle();
$(".goodbye").toggle();
});
答案 3 :(得分:0)
这是使用兄弟选择器的CSS选项。 If .hello is sibling to .goodbye: display: none;
.goodbye + .hello {
display: none;
}
<div class="goodbye">
goodbye
</div>
<div class="hello">
Hello
</div>
此解决方案需要重新排序元素,因为兄弟选择器不会选择前一个元素。
答案 4 :(得分:-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 Demo 强>