Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.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选择元素的更快方法_Javascript_Html - Fatal编程技术网

使用javascript选择元素的更快方法

使用javascript选择元素的更快方法,javascript,html,Javascript,Html,我想知道是否有更快的方法来选择: document.getElementById('container') .getElementsByTagName('p')[0] .getElementsByTagName('strong')[1] .innerText 结构如下: <div id='container'> <p> <strong></strong> <str

我想知道是否有更快的方法来选择:

document.getElementById('container')
        .getElementsByTagName('p')[0]
        .getElementsByTagName('strong')[1]
        .innerText
结构如下:

<div id='container'>
   <p>
      <strong></strong>
      <strong> what I would like to get</strong>
   </p>
   <div id='moredivs'>
   </div>
   <div id='moredivs'>
   </div>
</div>



我想要的


更快,不-更优雅,是:

首先,您需要有效的HTML:

console.log(
document.querySelector(#container>p>strong:last child”).textContent
);



我想要的文本


这是我经常使用的一个方便的技巧。它看起来很像jQuery,但事实并非如此

const $ = document.querySelector.bind(document);
const it = $('container').innerText

不完全是jQuery,但键入比不键入要少一些,并且可以在整个javascript文件中重用

当然,也可以将其合并到这个方便的速记中

const$=document.querySelector.bind(文档);
const txt=$('#container>p:first of type>strong:n第n个子项(2)')。innerText
console.log(txt)



我想要的


这是我最常使用的

“更快”?你是说代码更少?如果这是HTML,而且它不可能改变,那么你可以使用
查询选择器
(我怀疑它是否更快,但我不知道)。从未想过用这种方式,每天学习一些东西,干杯@cssphus:)
const $$ = document.querySelectorAll.bind(document);
const it = $$('#container p')[0].getElementsByTagName('strong')[1].innerText
<div id='container'>
  <p>
    <strong></strong>
    <strong id='thisText'> what I would like to get</strong>
  </p>
<div id='moredivs1'> //classes are reusable, ids "aren't"
</div>
<div id='moredivs2'>
</div>
</div>
document.querySelector('#thisText').innerText