2016-07-09 12 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

ありがとうございます!非常に参考になりました。 – jedihamster

+0

上記のビデオとボディフェードの両方を0.25にしてください。基本的にビデオは0の不透明度からフェードアップします。他のものは0.25にフェードします。 – jedihamster

+0

一貫性のために可能であれば、バニラのjavascript – jedihamster

-1

このコードはPHP stリップタグ機能。 Strip function。これをチェックしてください。 strip_tags(as, '<select>'); ここでasはあなたのタグコードを含む変数です。 2番目のパラメータで宣言されているタグはすべて削除されません。

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); 
関連する問題