2017-01-13 1 views
-1

У меня есть следующий кодСуществует ли метод удаления одного тега HTML и НЕ всего узла?

<noscript> 
<img src="url/HugeCatPicture.jpg" name="I dont want this image to auto load"> 
</noscript> 

Я хочу, чтобы удалить только открытие NoScript тег и оставить закрытие NoScript тег.

Можно ли это сделать с использованием чистого JavaScript? Возможно ли такое действие?

(Нет JavaScript решений библиотеки, пожалуйста)

+0

can u do like 'var a = ''; a.replace ("

+1

Зачем вы хотите это сделать? Причина может привести вас к решению. –

+0

@debin Спасибо, но я не могу сделать то, что вы предлагаете, потому что теги в моем примере уже записаны на html-странице. Мне нужен способ удаления хотя бы одного из тегов, так что тег img еще раз доступен браузером для загрузки. –

ответ

2

Html документ не узел на основе, и если вы удалите noscript, то это ребенок также получает удалены. Для этого

  1. чтения дочерних элементов noscript
  2. получить noscript и его родителей DOM
  3. удалить nosrcript и добавить дочерние элементы для noscript родительского узла
+0

Это было первое, что я пробовал; обтекание HTML-элементов в теге noscript делает его содержимое (дочерние узлы) недоступным javascript. Если в браузере не включен javascript. Так что этот ответ не поможет. –

+0

@ReallyNiceCode, можете ли вы прочитать свой комментарий еще раз и объяснить это мне? Как эта часть UNLESS может когда-либо произойти? + вы можете получить доступ к элементу noscript и его 'textContent' или' innerHTML' – Kaiido

+0

, тогда вам нужно использовать '' по-разному. писать сценарий, который предотвращает автоматическую загрузку ''. Я просто сказал, прочитав атрибут «alt». – msucil

2

Я бы сказал, что это неправильное использование тег <noscript>. Из W3C documentation о noscript:

NoScript элемент используется для представления иной разметки для агентов пользователей, не поддерживающих скрипты

+0

Спасибо, я знаю, что тег

+0

Решение состоит в том, чтобы не использовать его в качестве взлома оптимизации, потому что это неправильно. – sevenseacat

0

Вы можете использовать чистый JavaScript как:

<script> 
    // on page reload use this 
var str = '<noscript><img src="image_url" name="test"></noscript>' 
var res = str.replace("<noscript>", ""); 
document.getElementById("your_id").innerHTML = res; 
</script> 
+0

Спасибо, но ваше решение подразумевает, что я динамически добавляю тег

Смежные вопросы