除了Document类型之外,Element类型是JavaScript编程中最常使用的类型。Element类型常用于表现HTML或XML元素,提供对元素标签名、子节点及特性的访问。Element节点具有以下的特点:
nodeType的值为1。
nodeName的值为元素的标签名。
nodeValue的值为null。
parentNode的值可能是Document或Element。
它的子节点可能是Element、Text、Comment、ProcessingInstruction、CDATASection或EntityReference。
要访问元素的标签名可以使用nodeName属性,也可以使用tagName属性,这两个属性会返回相同的值,例如下面的例子:
<div id="myDiv"></div>
可以像下面这样获取这个元素的标签名称:
var div = document.getElementById("myDiv"); console.info(div.tagName); //输出“DIV” console.info(div.tagName == div.nodeName); //true
在HTML中,标签始终以大写字母来表现,因此div.tagName会输出大写的“DIV”。而在XML(包括XHTML)中,标签名则会于源代码中的标签保持一致。因此在比较元素的标签名是否一致的时候,最好将它们转换为小写在比较。
//错误的写法 if(element.tagName == "div"){ } //正确的写法 if(element.tagName.toLowerCase() == "div"){ }
HTML元素
所有的HTML元素都由HTMLElement类型来表示,不是通过这个类型,也是通过它的子类型来表示。HTMLElement类型直接继承自Element类型,并添加了一些属性。添加的这些属性分别对应于每个HTML元素中都存在的系列特性:
id,元素在文档中唯一的标识符。
title,有关元素的附加说明信息,一般会通过工具提示条来显示。
lang,元素内容的语言。
dir,语言的方向,值为“ltr”(从左向右显示),或“rtl”(从右向左显示)。
classname,元素元素的class特性对应,即为元素指定的CSS类。
上面的这些属性都可以用来获取或修改相应的特性值。例如下面的例子:
<div id="myDiv" title="jQuery之家" dir="ltr">jQuery之家</div>
我们可以在控制台中输出上面的属性值:
var div = document.getElementById("myDiv"); console.info(div.id); console.info(div.className); console.info(div.title); console.info(div.lang); console.info(div.dir);
要给这些属性赋值,可以像下面这样操作:
div.id = "otherId"; div.className = "otherClass"; div.title = "otherTitle"; div.lang = "en"; div.dir = "rtl";
获取属性
每一个元素都有一个或多个属性,操作元素属性的DOM方法有3个,分别是:
getAttribute()
setAttribute()
removeAttribute()
上面的这些方法可以对任何属性使用,例如:
var div = document.getElementById("myDiv"); console.info(div.getAttribute("id")); console.info(div.getAttribute("class")); console.info(div.getAttribute("title")); console.info(div.getAttribute("lang")); console.info(div.getAttribute("dir"));
通过getAttribute()方法也可以获取自定义的属性(即标准HTML语言中没有的属性名称),例如:
<div id="myDiv" my-attribute="hello">自定义属性</div>
可以像获取其它属性一样获取这个自定义属性的值。
var div = document.getElementById("myDiv"); console.info(div.getAttribute("my-attribute")); //hello
提示:属性名称不区分大小写,即"ID"与"id"代表同一个属性。
有两个特殊的属性,它们虽然有对应的属性名,但是属性的值与通过getAttribute()获取的值并不相同。第一个属性是style属性,用于通过CSS来为元素赋予样式。在通过getAttribute()访问时,返回的style属性值中并不是包含的CSS文本,而是会返回一个对象。第二个是像onclick这样的事件处理程序。当在元素上使用的时候,onclick中包含的是JavaScript代码,如果通过getAttribute()来访问的时候,则会返回一个JavaScript函数。
设置属性
与getAttribute()相对应的是setAttribute()方法,该方法接收两个参数:要设置的属性名称和值。如果要设置的属性已经存在,setAttribute()方法会以指定的值替换现有的值,如果属性不存在,setAttribute()方法会创建该属性并设置相应的值。例如:
div.setAttribute("id","myDiv"); div.setAttribute("class","div-class"); div.setAttribute("title","div-title");
通过setAttribute()方法既可以操作HTML属性,也可以操作自定义的属性。通过这个方法设置的属性名称会被统一转换为小写形式,例如“ID”会被转换为“id”。
也可以直接使用属性赋值的方式来设置属性值
div.id = "myDiv"; div.align = "left";
但是像下面这样为DOM元素添加一个自定义属性,这个属性不会自动成为元素的特性:
div.myColor = "red"; alert(div.getAttribute("myColor")); //返回null
要删除一个元素的特性,可以使用removeAttribute()方法,该方法用于彻底删除元素的特性。调用这个方法不仅会清除特性的值,也会从元素中完全删除这个特性。例如:
div.removeAttribute("class");
attribute属性
Element类型是唯一一个使用attribute属性的DOM节点类型。attribute属性中包含一个NamedNodeMap,于NodeList相似,也是一个动态的集合。元素的每一个特性都由一个Attr节点表示,每一个节点都保存在NamedNodeMap对象中。NamedNodeMap对象拥有以下一些方法:
getNamedItem(name):返回nodeName属性等于name的节点。
removeNamedItem(name):从列表中移除nodeName属性等于name的节点。
setNamedItem(name):向列表中添加节点,以节点的nodeName为索引。
item(pos):返回位于pos位置处的节点。
attribute属性包含一系列的节点,每个节点的nodeName就是特性的名称,而节点的nodeValue就是特性的值。要取得元素的id,可以使用下面的方法:
var id = element.attribute.getNamedItem("id").nodeValue;
也可以通过方括号的方式来简写上面的代码:
var id = element.attribute["id"].nodeValue;
也可以通过这种语法来设置属性值:
element.attribute["id"].nodeValue = "myDiv";
调用removeNamedItem()方法与在元素上调用removeAttribute()方法的效果一样:删除给定名称的元素特性。但是它们之间也有一些区别,removeNamedItem()方法会返回被删除特性的Attr节点:
var oldAttr = element.attribute.removeNamedItem("id");
创建元素
我们通过document.createElement()方法可以创建一个新的元素。这个方法只接受一个参数:要创建的元素的标签名称。这个标签名称在HTML文档中不区分大小写,而在XML文档中则是要区分大小写的。例如使用下面的代码来创建一个新的元素:
var div = document.createElement("div");
在使用createElement()创建元素的同时,也为元素设置了ownerDocument属性。同时,我们还可以操作元素的特性,为它添加更多的子节点,例如:
var div = document.createElement("div");div.id = "myDiv";div.className = "div-class";
在新元素上设置这些特性只是为元素添加了相应的信息。由于新元素还没有被添加到文档树中,所以这些特性不会浏览器的显示。要把新元素添加到文档树中,可以使用appendChild()、insertBefore()、replaceChild()方法,例如下面的代码:
var div = document.createElement("div"); document.body.appendChild(div);
一旦新元素被添加到文档树中,浏览器就会立刻展现该元素。之后,对该元素所做的任何修改都会在浏览器中被反应出来。
元素子节点
元素可以有任意数量的子节点和后代节点。元素的childNodes属性中包含了它的所有子节点,这些子节点有可能是元素、文本节点、注释或处理指令。不同的浏览器对待这些节点有不同的处理方法,以下面的代码为例:
<ul id="myList"> <li>Item 1</li> <li>Item 2</li> <li>Item 3</li> </ul>
如果是IE浏览器来解析这段代码,那么ff6d136ddc5fdfeffaf53ff6ee95f185元素会有3个子节点,分别是3个25edfb22a4f469ecb59f1190150159c6元素;如果是其他浏览器来解析,ff6d136ddc5fdfeffaf53ff6ee95f185元素都会有7个子节点,包括3个25edfb22a4f469ecb59f1190150159c6元素和4个文本节点(表示25edfb22a4f469ecb59f1190150159c6元素之间的空白符)。如果像下面这样删除了元素之间的空白符号,那么所有的浏览器都会返回相同的子节点数量。
<ul id="myList"><li>Item 1</li><li>Item 2</li><li>Item 3</li></ul>
对于上面的代码,ff6d136ddc5fdfeffaf53ff6ee95f185元素在任何浏览器都会包含3个子节点。如果你需要通过childNodes来遍历子节点,那么一定要注意浏览器之间的这一差别。这就意味着在执行某项操作之前,我们需要检查一下nodeType属性,例如下面的代码:
for(var i = 0,len = element.childNodes.length; i < len; i++){ if(element.childNodes[i].nodeType == 1){ //执行某些操作... } }
这个例子会循环遍历特定元素的每一个子节点,在子节点的nodeType类型为1时(表示元素节点),才执行某些操作。
如果想通过某个特定的标签名称来获取子节点和后代节点,可以使用getElementsByTagName()方法。在通过元素调用这个方法的时候,除了搜索起点是当前元素之外,其它的都与通过document来调用这个方法是一样的,因此,搜索的结果只会返回当前元素的后代。例如,想要取得ff6d136ddc5fdfeffaf53ff6ee95f185元素包含的所有25edfb22a4f469ecb59f1190150159c6元素,可以这样写代码:
var ul = document.getElementById("myList"); var items = ul.getElementsByTagName("li");
上面的ff6d136ddc5fdfeffaf53ff6ee95f185元素中只包含直接的25edfb22a4f469ecb59f1190150159c6子元素。如果它包含更多层次的后代子元素,那么各个层次包含的25edfb22a4f469ecb59f1190150159c6元素也一起会被返回。
以上就是JavaScript文档对象模型-Element类型的内容,更多相关内容请关注PHP中文网(www.php.cn)!

Ya, teras enjin JavaScript ditulis dalam C. 1) Bahasa C menyediakan prestasi yang efisien dan kawalan asas, yang sesuai untuk pembangunan enjin JavaScript. 2) Mengambil enjin V8 sebagai contoh, terasnya ditulis dalam C, menggabungkan kecekapan dan ciri-ciri berorientasikan objek C. 3) Prinsip kerja enjin JavaScript termasuk parsing, penyusun dan pelaksanaan, dan bahasa C memainkan peranan penting dalam proses ini.

JavaScript adalah di tengah -tengah laman web moden kerana ia meningkatkan interaktiviti dan dinamik laman web. 1) Ia membolehkan untuk menukar kandungan tanpa menyegarkan halaman, 2) memanipulasi laman web melalui Domapi, 3) menyokong kesan interaktif kompleks seperti animasi dan drag-and-drop, 4) mengoptimumkan prestasi dan amalan terbaik untuk meningkatkan pengalaman pengguna.

C dan JavaScript mencapai interoperabilitas melalui webassembly. 1) Kod C disusun ke dalam modul WebAssembly dan diperkenalkan ke dalam persekitaran JavaScript untuk meningkatkan kuasa pengkomputeran. 2) Dalam pembangunan permainan, C mengendalikan enjin fizik dan rendering grafik, dan JavaScript bertanggungjawab untuk logik permainan dan antara muka pengguna.

JavaScript digunakan secara meluas di laman web, aplikasi mudah alih, aplikasi desktop dan pengaturcaraan sisi pelayan. 1) Dalam pembangunan laman web, JavaScript mengendalikan DOM bersama -sama dengan HTML dan CSS untuk mencapai kesan dinamik dan menyokong rangka kerja seperti JQuery dan React. 2) Melalui reaktnatif dan ionik, JavaScript digunakan untuk membangunkan aplikasi mudah alih rentas platform. 3) Rangka kerja elektron membolehkan JavaScript membina aplikasi desktop. 4) Node.js membolehkan JavaScript berjalan di sisi pelayan dan menyokong permintaan serentak yang tinggi.

Python lebih sesuai untuk sains data dan automasi, manakala JavaScript lebih sesuai untuk pembangunan front-end dan penuh. 1. Python berfungsi dengan baik dalam sains data dan pembelajaran mesin, menggunakan perpustakaan seperti numpy dan panda untuk pemprosesan data dan pemodelan. 2. Python adalah ringkas dan cekap dalam automasi dan skrip. 3. JavaScript sangat diperlukan dalam pembangunan front-end dan digunakan untuk membina laman web dinamik dan aplikasi satu halaman. 4. JavaScript memainkan peranan dalam pembangunan back-end melalui Node.js dan menyokong pembangunan stack penuh.

C dan C memainkan peranan penting dalam enjin JavaScript, terutamanya digunakan untuk melaksanakan jurubahasa dan penyusun JIT. 1) C digunakan untuk menghuraikan kod sumber JavaScript dan menghasilkan pokok sintaks abstrak. 2) C bertanggungjawab untuk menjana dan melaksanakan bytecode. 3) C melaksanakan pengkompil JIT, mengoptimumkan dan menyusun kod hot-spot semasa runtime, dan dengan ketara meningkatkan kecekapan pelaksanaan JavaScript.

Aplikasi JavaScript di dunia nyata termasuk pembangunan depan dan back-end. 1) Memaparkan aplikasi front-end dengan membina aplikasi senarai TODO, yang melibatkan operasi DOM dan pemprosesan acara. 2) Membina Restfulapi melalui Node.js dan menyatakan untuk menunjukkan aplikasi back-end.

Penggunaan utama JavaScript dalam pembangunan web termasuk interaksi klien, pengesahan bentuk dan komunikasi tak segerak. 1) kemas kini kandungan dinamik dan interaksi pengguna melalui operasi DOM; 2) pengesahan pelanggan dijalankan sebelum pengguna mengemukakan data untuk meningkatkan pengalaman pengguna; 3) Komunikasi yang tidak bersesuaian dengan pelayan dicapai melalui teknologi Ajax.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini
