Заменить;вне тегов (jquery) - PullRequest
       6

Заменить;вне тегов (jquery)

1 голос
/ 06 ноября 2011

У меня есть следующий вывод HTML, который я не могу изменить:

<td class="test"><a>link1</a>;<a></a>;<a></a>;<a>link</a><td>

Как я могу избавиться от; так что результат становится:

link1; link2

Это моя лучшая попытка:

var test = new String($(this).html());
var tmp = ">; <A><"
test = test.replace(/tmp/g,"><A><");

1 Ответ

3 голосов
/ 06 ноября 2011

Вы можете просто просмотреть элементы :empty <a> и удалить их вместе со следующими соседними текстовыми узлами ";" в цикле, например:

$(".test a:empty").each(function() {
    if(this.nextSibling.nodeValue == ";") 
        this.parentNode.removeChild(this.nextSibling);
}).remove();

Вы можете проверить это здесь .

Это просто возвращает пустые якоря, и перед тем, как удалить их из DOM, просматривает их конечные текстовые узлы, чтобы определить, явно ли они ";" в содержимом ... если это так, то мы удаляем это текстовый узел от родителя <td>. Затем после этого цикла мы удаляем все пустые якоря, которые мы нашли в первую очередь.

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