Удалите div с помощью php, если класс существует
У меня есть 2 div, если один показан с class="до свидания" - как мне удалить другой div с php?
Или я должен использовать 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>
5 ответов
PHP, будучи языком сценариев на стороне сервера, не может манипулировать DOM. Если условие, которое вы используете для оценки отображения вашего <div>
обрабатывается на стороне сервера, тогда вы можете использовать PHP для вывода одного <div>
или другой. В противном случае используйте jQuery или JavaScript для манипулирования клиентской стороной DOM.
Чтобы ответить на прямой вопрос. Удалите его с помощью PHP:
if($hello) {
echo "<div class=\"hello\">Hello</div>";
} else {
echo "<div class=\"goodbye\">goodbye</div>";
}
JavaScript, а не PHP.
if ($('.goodbye').length > 1) {
$('.hello').hide();
}
Вот опция CSS, использующая селектор брата. If .hello is sibling to .goodbye: display: none;
.goodbye + .hello {
display: none;
}
<div class="goodbye">
goodbye
</div>
<div class="hello">
Hello
</div>
- jsFiddle с до свидания (прячет привет)
- jsFiddle без прощания (показывает привет)
Это решение требует переупорядочения элементов, потому что селектор брата не выбирает предыдущий.
Вы не можете сделать это с PHP, так как это серверный язык. Как только страница будет отображена, вам нужно будет использовать язык на стороне клиента. Да, вы можете использовать jQuery (Javascript):
//when to handle..
$("input").click(function() {
$(".hello").toggle();
$(".goodbye").toggle();
});
Вы не можете сделать это в PHP, когда страница отображается... Используйте вместо этого jQuery. Есть много разных способов сделать это.
использование .is(":visible"));
чтобы увидеть, виден ли класс или нет.
Попробуйте этот пример:
$('#clickme').hover(function () {
$('.hello').hide();
$('.goodbye').show();
alert($('.goodbye').is(":visible"));
}, function () {
$('.goodbye').hide();
$('.hello').show();
alert($('.goodbye').is(":visible"));
});