Можете ли вы использовать jQuery для манипулирования html, введенным в текстовую область формы? - PullRequest
1 голос
/ 21 апреля 2011

Мне интересно, могу ли я использовать jQuery для перекодирования HTML, введенного в форму.Например, я хотел бы «разбить» код HTML-таблицы, который пользователи вручную вводят в текстовую область формы.Если текстовое поле имеет табличный код id =, оно не работает

$('textarea#tablecode tr:even').addClass('table_even');

Есть ли способ использовать jQuery для манипулирования html, который пользователи вводят в поле формы?или мне нужно отправить форму на сервер, а затем использовать регулярные выражения в PHP для добавления моих классов?Благодарю.

Ответы [ 5 ]

2 голосов
/ 21 апреля 2011

1001 * попробовать *

var code = $('textarea#tablecode')[0].value;
var parsedHTML = $(code);

там у вас есть объект jQuery с разобранным HTML. Тогда вы можете манипулировать им

$("tr:even", parsedHTML).addClass('table_even");

И, необязательно, внесите изменения обратно в текстовую область.

$('textarea#tablecode')[0].value = parsedHTML[0].outerHTML;
1 голос
/ 21 апреля 2011

Не напрямую, поскольку содержимое текстовой области является просто текстом.

Однако вы можете прочитать значение текстовой области и создать представление в памяти (, пока онодействительный html ) и обработайте его.

$('#convert').click(function(){
  var $html = $( $('#tablecode').val() ).wrapAll('<div />').parent();

    // manipulate html
  $('tr:even', $html).addClass('table_even');

    //show altered html in another textarea with id=result
    $('#result').val($html.html());
});

demo at http://jsfiddle.net/gaby/f4FuG/

1 голос
/ 21 апреля 2011

Вам нужно будет извлечь текст из текстовой области и создать из него DOM-узел. (Затем вы можете сериализовать его обратно в строку и положить обратно в текстовую область, если требуется.)

0 голосов
/ 21 апреля 2011

Текстовая модель представляет собой простой текст.Так что этот селектор $('textarea#tablecode tr:even') просто не будет работать.

Вам нужно будет передать свой текст в html-парсер, чтобы получить DOM.Тогда измените это.Затем сериализуйте его обратно в HTML.

Этот Надежный и зрелый анализатор HTML для PHP может быть полезен.

0 голосов
/ 21 апреля 2011

идентификаторы применяются к отдельным элементам.Они должны быть уникальными.Попробуйте изменить идентификатор на класс и измените # на ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...