Удалите 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>

Это решение требует переупорядочения элементов, потому что селектор брата не выбирает предыдущий.

Вы не можете сделать это с PHP, так как это серверный язык. Как только страница будет отображена, вам нужно будет использовать язык на стороне клиента. Да, вы можете использовать jQuery (Javascript):

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

http://jsfiddle.net/kfhb7gzq/

Вы не можете сделать это в 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

Другие вопросы по тегам