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

CSS有一个:not伪类,它接受简单的选择器,如标签选择器。所以

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>

此代码的工作方式与 PHP 条带标签函数相同。条形功能。看看这个。 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 = /<!--[sS]*?-->|<?(?:php)?[sS]*??>/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); 

相关内容

  • 没有找到相关文章

最新更新