pixiv insideは移転しました! ≫ https://inside.pixiv.blog/

フロントエンドで知っておきたい要素指定の考え方


 id:koharusugiura 

JavaScript  jQuery  Reactvue.js 使 DOM 

DOM  HTML  XML DOM  JavaScript  Java  Python 

便使 DOM 

DOM 

 Advent Calendar 201523

qiita.com

  ECMAScript 3.1 

ID


DOM  HTML ID
// DOM Core
var element = document.getElementById('element-id');
// Selectors API
var element = document.querySelector('#element-id');

使DOM Level 2 Core  getElementById  Selectors API ID


HTML 
// DOM Level 2 Core
var anchors = document.getElementsByTagName('a');
var anchorsLength = anchors.length;
var i, anchor;
for (i = 0; i < anchorsLength; ++i) {
  anchor = anchors[i];
  doSomething(anchor);
}
// Selectors API
var anchors = document.querySelectorAll('a');
var anchorsLength = anchors.length;
var i, anchor;
for (i = 0; i < anchorsLength; ++i) {
  anchor = anchors[i];
  doSomething(anchor);
}

 getElementById DOM Level 2 Core  getElementsByTagName  Selectors API 使

 getElementsByTagName  HTMLCollection Selectors API  querySelectorAll   NodeList 



 HTML result: false 
<!doctype html>
<title>HTMLCollection !== NodeList</title>
<p><a href="http://example.com/" id="anchor">example</a></p>
<p>result: <output id="result"></output></p>
<script>
var anchorsFromDomCore = document.getElementsByTagName('a');
var anchorsFromSelectors = document.querySelectorAll('a');
var anchor = document.getElementById('anchor');
anchor.parentNode.removeChild(anchor);
document.getElementById('result').value = anchorsFromDomCore.length === anchorsFromSelectors.length;
</script>

HTMLCollection  HTML HTMLCollection  NodeList 

HTML HTMLCollection  getElementsByTagName  for 

getElementsByTagName 使 Selectors API 

ID getElementById Selectors API  getElementsByTagName getElementsByTagName 

HTMLCollection  NodeList Array like objectArray like object  length Array  Array 

DOM  Array HTMLCollection  Array  Selectors API 

HTMLCollection  Array  Array.prototype.slice 使Array.prototype.slice HTMLCollection  Selectors API 
var anchors = Array.prototype.slice.call(document.getElementsByTagName('a'));
var anchorsLength = anchors.length;
var i, anchor;
for (i = 0; i < anchorsLength; ++i) {
  anchor = anchors[i];
  doSomething(anchor);
}


HTML  getElementsByClassName 使Selectors API getElementById  getElementsByTagName  getElementsByClassName 
// W3C DOM 4
var elements = Array.prototype.slice.call(document.getElementsByClassName('element-class-name'));
var elementsLength = elements.length;
var i, element;
for (i = 0; i < elementsLength; ++i) {
  element = elements[i];
  doSomething(element);
}

getElementsByClassName  getElementsByTagName  HTMLCollection getElementsByTagName Array.prototype.slice 使 Array 

getElementsByClassName  getElementById  getElementsByTagName  Internet Explorer 2011  Internet Explorer 9 Internet Explorer 8 使


jQuery 

ID getElementById  getElementsByTagName  getElementsByClassName  jQuery  Selectors API 

Selectors API 使 jQuery jQuery  ifjQuery 使

jQuery jQuery 



 Microsoft MVP for Internet Explorer  Web Performance furoshiki