JQuery: удалить текст из HTML

0

Я пытаюсь удалить "или" из этого HTML-кода:

<div>
  <a href="https://store-b2aus7wd.mybigcommerce.com/account.php">Account</a>
  <a href='https://store-b2aus7wd.mybigcommerce.com/login.php' onclick=''>Sign in</a> 
 or
  <a href='https://store-b2aus7wd.mybigcommerce.com/login.php?action=create_account' onclick=''>Create an account</a>
</div>

используя этот код:

$("div").html().replace(/\or/g,"");

но он ничего не делает.

  • 0
    Что произойдет, если один из URL-адресов содержит текст "или" это он где-то?
  • 0
    \o является необходимым и может даже вызвать ошибки.
Теги:

3 ответа

2
Лучший ответ

Вместо того, чтобы работать с html как строкой, лучше было бы это сделать, работая с объектами DOM:

$('div').contents().filter(function() {
    return this.nodeType == 3 && $.trim(this.textContent) == 'or';
}).remove();

Здесь скрипка: http://jsfiddle.net/Lm4pC/. Похоже, что .remove() имеет нечетный эффект на расстоянии. Использование .replaceWith('\n') или .replaceWith(' ') вместо этого может работать лучше в зависимости от вашей ситуации: http://jsfiddle.net/kdYQP/

2

$("div").html() возвращает текущий html div как строку. Что вы тогда манипулируете. Как строка. Вам нужно назначить его обратно:

$("div").html( $("div").html().replace(/\or/g,"") );

Тем не менее, вы уверены, что хотите сделать это с регулярным выражением? Если символы "или" появляются в одном из URL-адресов, они также удаляются.

  • 0
    Благодарю. Есть ли способ лучше?
  • 0
    Зависит от того, что вы хотите сделать? удалить именно этот текст? или удалить все не ссылку? или что?
Показать ещё 3 комментария
1

Просто опубликуйте это, если вы удалите весь текст (на данный момент это немного неясно) и не хотите использовать оператор regex:

$("div").html($("div a"));

Это изменит HTML- div чтобы включить только элементы a, существенно удалив весь текст из HTML. В этом случае единственный текст есть or.

пример

  • 0
    Я думал об этом (или $('div').html( $('div').children() ) ), но проблема в том, что вы теряете пробел между ссылками.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню