使用纯JavaScript隐藏括号内的内容

使用纯JavaScript隐藏括号内的内容,javascript,Javascript,我想使用纯JavaScript隐藏文档中括号内的所有内容。例如,这: Sometext[信息] 将替换为以下内容: 一些文字 使用jQuery,我可以通过以下方式实现这一点: jQuery(文档).ready(函数(){ var replaced=jQuery(“body”).html(); jQuery(“body”).html(已替换); }); 您已经有了解决方案,请尝试“Sometext[info]”。替换(/\[.\]/g.)将在您传递给的回调同时触发 您可以通过而不是jQuery(

我想使用纯JavaScript隐藏文档中括号内的所有内容。例如,这:

Sometext[信息]

将替换为以下内容:

一些文字

使用jQuery,我可以通过以下方式实现这一点:


jQuery(文档).ready(函数(){
var replaced=jQuery(“body”).html();
jQuery(“body”).html(已替换);
});

您已经有了解决方案,请尝试“Sometext[info]”。替换(/\[.\]/g.)

将在您传递给的回调同时触发

您可以通过而不是jQuery(“body”)访问页面的主体,并使用而不是jQuery修改HTML


基本上你在做什么

document.addEventListener('DOMContentLoaded', function() {
    var replaced = document.body.innerHTML.replace(/\[.*\]/g,'');
    document.body.innerHTML = replaced
});
不过那是个愚蠢的想法(我自己说)

通过这样做,让你的生活变得更轻松,网站变得更好

<p> Sometext <span class="tag-variable"> [info] </span> </p>

document.addEventListener('DOMContentLoaded', function(){
    var tags = document.getElementsByClassName('tag-variable');
    for( var i = 0; i < tags.length; i++) {
      var current = tags[i]; // Work with tag here or something
      current.parentNode.removeChild( current );
    }
});
Sometext[info]

document.addEventListener('DOMContentLoaded',function(){ var tags=document.getElementsByClassName('tag-variable'); 对于(var i=0;i
如果使用document.body.innerHTML进行替换,它将替换[]之间的所有内容,甚至是输入名称之类的有效内容。所以我认为你需要抓取所有的textNode,然后在它们上面运行正则表达式

函数递归(元素)
{
如果(element.childNodes.length>0)
对于(var i=0;i
Sometext[info]就是一个例子。除了它可以是任何东西,我知道,我只是继续你的例子:)这是核选项,它将删除任何和所有[],包括有效的,像在输入名称中找到的。请参阅我的答案,了解仅命中文本节点的内容。此选项是有效的。我会很坚决地回答这个问题。但是,如果我想让它只适用于带有class=“scanME”?
var cells=document.querySelectorAll('td.scanME')
将为您查找这些元素,但与jQuery不同,标准JavaScript DOM API不允许您一次修改所有这些元素。您需要为(var i=0;i循环来修改每个
单元格[i]
,修改方式与
文档相同。修改了body
。@Andrei对其进行了编辑,使其工作,并添加了代码,使其只命中特定节点,而不是文档中的所有节点。
<p> Sometext <span class="tag-variable"> [info] </span> </p>

document.addEventListener('DOMContentLoaded', function(){
    var tags = document.getElementsByClassName('tag-variable');
    for( var i = 0; i < tags.length; i++) {
      var current = tags[i]; // Work with tag here or something
      current.parentNode.removeChild( current );
    }
});
function recurse(element)
{
    if (element.childNodes.length > 0) 
        for (var i = 0; i < element.childNodes.length; i++) 
            recurse(element.childNodes[i]);

    if (element.nodeType == Node.TEXT_NODE && /\S/.test(element.nodeValue)){
         element.nodeValue = element.nodeValue.replace(/\[.*\]/g,'');
    }
}

document.addEventListener('DOMContentLoaded', function() {
  // This hits the entire document.
  // var html = document.getElementsByTagName('html')[0];
  // recurse(html);

  // This touches only the elements with a class of 'scanME'
  var nodes = document.getElementsByClassName('scanME');
  for( var i = 0; i < nodes.length; i++) {
    recurse(nodes[i]);
  }
});