Замените набор html br элементов на другой в jQuery - анализ HTML с помощью jQuery - PullRequest
1 голос
/ 18 августа 2011

Так вот моя проблема. У меня есть небольшой сторонний сервис на моем сайте, который генерирует кучу HTML из RSS-канала и вставляет его в мою веб-страницу при загрузке страницы. Однако, когда он генерирует HTML, он вставляет кучу совершенно ненужных тегов разрыва. К сожалению, исходный файл, который генерирует этот код, находится на стороннем сервере, а не на моем, поэтому я не могу его настроить.

Таким образом, я пытаюсь настроить HTML-код непосредственно перед загрузкой страницы, используя небольшой jQuery внутри свойства onLoad = "" в теге body. Однако я не могу просто использовать что-то вроде $ ('br'). Remove (); потому что тогда нет НИКАКИХ тегов разрыва, и мне нужно по одному на каждое место, где в настоящее время их три.

Итак, в конечном счете, мне нужно создать оператор jQuery, который заменит

<br><br clear=all><br>

с

<br />

Я довольно новичок в jQuery, но не могу найти ничего, что могло бы помочь мне в этом. Есть идеи?

Заранее спасибо за любую помощь!

Ответы [ 6 ]

3 голосов
/ 18 августа 2011

Используйте Следующий соседний селектор (+) :

$("br+br").remove(); //Removes all <br> tags in front of another

jsFiddle demo

1 голос
/ 18 августа 2011

Предполагая, что они в том формате, который вы указали, вы можете сделать это:

var br = $('br[clear="all"]');
br.attr('clear', '');
br.prev('br').remove();
br.next('br').remove();
0 голосов
/ 18 августа 2011

Чтобы удалить все, кроме одного:

$('br,[clear!="all"]').remove()

Затем, чтобы удалить 'clear = all':

$('br').removeAttribute('clear')
0 голосов
/ 18 августа 2011

Почему бы просто не заменить HTML HTML-контейнера RSS:

  yourContainerElem.innerHTML =  yourContainerElem.innerHTML.replace(/<br><br clear=all><br>/gi, '<br />');
0 голосов
/ 18 августа 2011

Вы можете играть с атрибутами селектора не внутри загрузки, а внутри готового jquery (http://api.jquery.com/ready/)

.

$ ( 'ш [ясно = все]') удалить ();

подробнее об атрибуте селектора: http://api.jquery.com/attribute-equals-selector/

0 голосов
/ 18 августа 2011

Лучше сделать это с помощью регулярных выражений, а не с помощью jquery. Простейший пример:

string.replace('<br><br clear=all><br>', '<br />')
...