相关疑难解决方法(0)

HTMLCollection,NodeLists和对象数组之间的区别

在DOM方面,我一直对HTMLCollections,对象和数组感到困惑.例如...

  1. document.getElementsByTagName("td")和之间有什么区别$("td")
  2. $("#myTable")并且$("td")是对象(jQuery对象).为什么console.log还会在它们旁边显示DOM元素数组,它们不是对象而不是数组?
  3. 什么是难以捉摸的"NodeLists",我如何选择一个?

还请提供以下脚本的任何解释.

谢谢

[123,"abc",321,"cba"]=[123,"abc",321,"cba"]
{123:123,abc:"abc",321:321,cba:"cba"}=Object { 123=123, abc="abc", 321=321, more...}
Node= Node { ELEMENT_NODE=1, ATTRIBUTE_NODE=2, TEXT_NODE=3, more...}
document.links= HTMLCollection[a #, a #]
document.getElementById("myTable")= <table id="myTable">
document.getElementsByClassName("myRow")= HTMLCollection[tr.myRow, tr.myRow]
document.getElementsByTagName("td")= HTMLCollection[td, td, td, td]
$("#myTable")= Object[table#myTable]
$("td")= Object[td, td, td, td]


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
        <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> 
        <title>Collections?</title>  
        <script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script> 
        <script type="text/javascript">
            $(function(){
                console.log('[123,"abc",321,"cba"]=',[123,"abc",321,"cba"]);
                console.log('{123:123,abc:"abc",321:321,cba:"cba"}=',{123:123,abc:"abc",321:321,cba:"cba"});
                console.log('Node=',Node);
                console.log('document.links=',document.links);
                console.log('document.getElementById("myTable")=',document.getElementById("myTable"));
                console.log('document.getElementsByClassName("myRow")=',document.getElementsByClassName("myRow"))
                console.log('document.getElementsByTagName("td")=',document.getElementsByTagName("td"));
                console.log('$("#myTable")=',$("#myTable")); …
Run Code Online (Sandbox Code Playgroud)

javascript jquery dom

79
推荐指数
4
解决办法
5万
查看次数

创建一个HTMLCollection

我正在尝试垫片Element.prototype.children,它应该返回一个HTMLCollection

有一个 window.HTMLCollection

然而

var h = new HTMLCollection();
//TypeErrror: HTMLCollection is not a constructor
Run Code Online (Sandbox Code Playgroud)

var h = Object.create(HTMLCollection.prototype);
h[0] = div;
h.item(0); 
// Could not convert JavaScript argument
Run Code Online (Sandbox Code Playgroud)

测试Firefox 7和Chrome

除了垫片之外HTMLCollection还有什么方法可以与之互动吗?

如果您可以提出解决方案,也请提供有关此github问题的反馈

javascript dom dom4

9
推荐指数
3
解决办法
6969
查看次数

标签 统计

dom ×2

javascript ×2

dom4 ×1

jquery ×1