Nano Hash - криптовалюты, майнинг, программирование

Функция PHP, такая как jquery remove()

Есть ли в PHP функция, выполняющая ту же работу, что и функция remove() в jQuery? У меня есть эта простая функция javascript....

    function remove_trs (){
        $( "tr" ).remove( ".problem_display_work" );
    }

который удаляет все таблицы <tr>, которые являются class="problem_display_work", но я хочу посмотреть, можно ли это сделать в PHP.

ИЗМЕНИТЬ ДЛЯ ПОЯСНЕНИЯ

В конечном счете, я загружаю некоторый HTML в редактор TinyMCE. Вышеупомянутая функция вызывается с помощью onclick кнопки. Все это хорошо работает, когда HTML находится вне редактора TinyMCE, но не работает, когда я помещаю HTML-контент внутрь редактора. Мысли?

Спасибо.

16.06.2016

  • Чего вы хотите достичь, делая это через PHP 16.06.2016
  • вы не можете манипулировать существующим (запущенным в браузере) html-кодом через php, это может сделать только javascript (это язык, который запускается после загрузки страницы). Что вы можете сделать, например, если вы создаете строку в php foreach, это сделать if для проверки условия, и если это if == false, то вообще не писать TR 16.06.2016
  • Это можно сделать с помощью чего-то вроде DOMDocument (родной php). Но это похоже на плохой дизайн, за исключением внешнего HTML, который вы не можете изменить. 16.06.2016
  • Вы хотите удалить теги из строки HTML в PHP? Если это так, вам нужно изучить регулярные выражения. Вам, вероятно, придется работать с просмотром вперед/заглянуть назад, поэтому создание регулярного выражения может потребовать некоторой возни, но это можно сделать. 16.06.2016
  • Точно @FLX :) в принципе нет смысла делать это через PHP, на мой взгляд ... для выполнения этой функции javascript потребуется гораздо больше времени ... и DOMDocument PHP ничего не делает для HTML, который уже отображается в браузере 16.06.2016
  • @AresDraguna +1. HTML должен быть сгенерирован без проблемного ‹tr› с самого начала. 16.06.2016
  • @mpf82 - нет, регулярное выражение не будет правильный ответ на этот вопрос. 16.06.2016

Ответы:


1

Код в вашем TinyMCE не является частью DOM, это строка.

Но благодаря JQuery вы можете манипулировать строками HTML, как если бы они были частью DOM.

Нажмите кнопку Do Stuff Str, чтобы увидеть, как манипулируют содержимым таблицы в виде строки.

Вам нужно адаптировать этот пример для работы со строкой из вашего TinyMCE и записать строку обратно в редактор, когда вы закончите.

$(document).ready(function() {

  function remove_trs() {
    $("tr").remove(".problem_display_work");
  }

  function remove_trs_str(str) {
    // pass your HTML string to this function
    $str = $(str);
    $(".problem_display_work", $str).remove();
    return $str;
  }

  $("#do_stuff_dom").click(function() {
    remove_trs();
  });

  $("#do_stuff_str").click(function() {
    var html_str = $("#my_tbl").html(); // string from your TinyMCE 
    var $ret = remove_trs_str(html_str);
    console.log($ret.html());
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>

<div>
  <table id="my_tbl">
    <tr class="problem_display_work">
      <td>this will be removed</td>
    </tr>
    <tr class="something_else">
      <td>this will be kept</td>
    </tr>
  </table>
</div>

<button id="do_stuff_dom">Do Stuff DOM</button>
<button id="do_stuff_str">Do Stuff Str</button>

На самом деле нет необходимости передавать HTML в PHP, чтобы делать то, что вы хотите.

16.06.2016

2

Вы можете установить свой класс как переменную PHP в своем HTML-коде и изменить имя класса.

Это пример в теге <a>, но вы можете использовать его в своем теге <tr>

добавление и удаление классов css в href

16.06.2016
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..