Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中具有主体但不在id上的查询选择器_Javascript_Html - Fatal编程技术网

javascript中具有主体但不在id上的查询选择器

javascript中具有主体但不在id上的查询选择器,javascript,html,Javascript,Html,我被困在选择整个身体而不是身体中特定id的元素中。 我为javascript尝试了以下方法 var boxElemb = document.querySelector("body:not('ul#id')"); boxElemb.innerHTML=boxElemb.innerHTML.replace(/BOTÕES/g, 'Puxadores'); 但它不起作用。我正在用另一个文本替换内容。请帮助我,如果任何人有解决方案您可以在所有正文中替换您的文本,然后在特

我被困在选择整个身体而不是身体中特定id的元素中。 我为javascript尝试了以下方法

 var boxElemb =  document.querySelector("body:not('ul#id')");
    boxElemb.innerHTML=boxElemb.innerHTML.replace(/BOTÕES/g, 'Puxadores');

但它不起作用。我正在用另一个文本替换内容。请帮助我,如果任何人有解决方案

您可以在所有正文中替换您的文本,然后在特定id中将其替换回来

const body =  document.querySelector("body");
const id = document.querySelector("#id");
body.innerHTML=boxElemb.innerHTML.replace(/BOTÕES/g,'Puxadores');
id.innerHTML=boxElemb.innerHTML.replace('Puxadores', /BOTÕES/g);
ul#id
内部
not
不是有效语法

使用
[id]
。任何介于
[
]
之间的内容都将被视为属性。您还可以使用属性值对其进行过滤,如
[id='myId']

document.querySelector("body:not('ul[id]')");

如果你说如果你改变了文本,标签就不起作用了,那么你就完全错过了其他东西。但是,以下内容应符合您的要求:除具有特定id的ul外,任何地方都应更改

var body = document.querySelector('body'),
    ulIdText = document.querySelector('ul#id').innerHtml,
    bodyText = body.innerHTML
                 .replace(ulIdText,'_^_preallocatedtext_^_') 
                 .replace(/BOTÕES/g,'Puxadores')
                 .replace('_^_preallocatedtext_^_',ulIdText);

body.innerHTML = bodyText;
您可以在这里删除不必要的变量,但我建议保持这种方式,以便以后再次访问时不言自明

与其他两个答案相比,这里的差异

  • 在替换现有HTML之前,整个HTML已完全成形
  • body:not
    不排除
    not
    部分,因为
    body
    的标记/属性中不包含排除项。您需要使用
    document.queryselectoral
    ,但这需要一个巨大的循环

  • 您可以选择所有
    主体
    ,然后删除不必要的
    ul
    。像这样:

    var body = document.querySelector("body");
    var ul = document.getElementById("your-id");
    body.removeChild(ul);
    

    如果您的
    ul
    主体
    元素的直接子元素,则需要对其进行调整。

    是否需要此选择器来更改
    ul\id
    的内容?或者你想在整个网站(不包括ul#id?@brandt.codes)中将“BOTÕES”改为“Puxadores”。是的,你解释正确了,我想在整个正文(不包括选项卡“#id”部分)上使用“Puxadores”。如果选择符,你真的希望选择正文标签还是其他?发布html的摘录,突出显示您希望选择的内容和不希望选择的内容可能会更清楚。我的意思是在DOM的所有主体元素(id元素除外)上应用元素。请你澄清一下。你可以在正文中替换你的文本,然后在特定的id中替换它back不,我不想这样做,因为替换了文本,所以制表符不起作用,所以我只想留下该部分,并将文本更改应用到其他部分。如果提供id,则将为no???@HarshitSethi Yes,不
    #
    当它位于
    的内部时:不(…)
    我不确定上面的查询是否会获取任何内容,因为这意味着您正在尝试选择
    body
    ,它不是带有
    id
    属性的
    ul
    。但它是一个有效的查询这会导致以下错误(索引):4877未捕获的DomeException:未能对“文档”执行“querySelector”:“body:not('ul[tab1527316568708]”)不是有效的选择器。它根本不起作用也通过[id='myid'](索引):4877未捕获的DomeException:未能对“文档”执行“querySelector”:“body:not”(ul[id='tab1527316568708'])不是有效的选择器。由于翻译工作时重新提交内部html,因此该选项卡不起作用…@HarshitSethi好的。如果其他解决方案不起作用,请检查上述内容。