2016-07-09 1 views
2

Я пытаюсь выбрать все теги в теле, но хотел бы исключить тег видео, это мой код, пока я не уверен, как добиться исключения - любые советы и примеры были бы очень оценены ...Функция Javascript исключает теги

Измененный (полный код):

 function assets(){ 
     "use strict"; 
     var elements = document.querySelectorAll("body *:not(video)"); 
     elements.style.transition = "opacity 8s linear 0s"; 
     elements.style.opacity = 0.25; 

     var elem = document.getElementsByTagName("video")[0]; 
     elem.style.transition = "opacity 8s linear 0s"; 
     elem.style.opacity = 1.0; 
     } 

ответ

3

CSS имеет :not pseudoclass, который принимает простые селекторы как тегов селекторов. Так

var elements = document.querySelectorAll("body *:not(video)"); 

(* в *:not(...) не является действительно необходимым.)

Вот пример, который выбирает все то, что не div:

var elements = document.querySelectorAll("body *:not(div)"); 
 
Array.prototype.forEach.call(elements, function(e) { 
 
    console.log("Matched element: " + e.tagName); 
 
});
<span>I'm a `span`</span> 
 
<p>I'm a paragraph <strong>with a `strong` inside</strong></p> 
 
<div>I'm a div</div> 
 
<section>I'm a `section` 
 
    <div>I'm a `div` inside the `section`</div> 
 
</section>

+1

Спасибо! очень полезно - очень apprciated! – jedihamster

+0

Пожалуйста, см. Код выше, как видео, так и тело исчезают до 0,25, как бы я реализовал выше, чтобы видео оставалось. В основном видео исчезает с 0 opacity eveything еще исчезает до 0,25 – jedihamster

+0

В ванильном javascript, если это возможно, для согласованности – jedihamster

-1

Этот код работает так же, как PHP st rip tag функция. Strip function .check это вне. strip_tags(as, '<select>'); Здесь as - это переменная, которая содержит ваш код тега. Все теги, которые объявлены во втором параметре, не будут удалены.

function strip_tags(str,allow) { 
// making sure the allow arg is a string containing only tags in lowercase (<a><b><c>) 
      allow = (((allow || "") + "").toLowerCase().match(/<[a-z][a-z0-9]*>/g) || []).join(''); 

      var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>/gi; 
      var commentsAndPhpTags = /<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi; 
      return str.replace(commentsAndPhpTags, '').replace(tags, function ($0, $1) { 
       return allow.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : ''; 
      }); 
     } 
     var str2 = strip_tags(as, '<select>'); 
     console.log(str2); 
Смежные вопросы