2016-07-09 12 views
2

ich alle Tags innerhalb des Körpers zu wählen versucht bin, möchte aber den Video-Tag ausschließen dies ist mein Code so weit bin ich nicht sicher, wie das erreichen ausschließen - eine Beratung und Beispiele sehr würden sehr geschätzt ...Javascript-Funktion ausschließen Tags

Geänderte (voll) Code:

 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; 
     } 

Antwort

3

CSS hat eine :not pseudoclass die einfache Selektoren wie Tag-Selektoren akzeptiert. So

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

(Die * in *:not(...) ist nicht wirklich notwendig.)

Hier ein Beispiel ist, das alles auswählt, die kein div ist:

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

Vielen Dank! sehr hilfreich - viel appriciated! – jedihamster

+0

Bitte beachten Sie Code oben sowohl Video und Body Fade zu 0,25 wie würde ich oben implementieren, damit das Video bleibt. Grundsätzlich verblasst Video von 0 Opazität alles andere verbläßt bis 0.25 – jedihamster

+0

In Vanille-Javascript, wenn möglich aus Gründen der Konsistenz – jedihamster

-1

Dieser Code funktioniert wie PHP st Rip-Tag-Funktion. Strip function .überprüfe dies. strip_tags(as, '<select>'); Hier ist as eine Variable, die Ihren Tag-Code enthält. Alle Tags, die im zweiten Parameter deklariert sind, werden nicht entfernt.

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);