js和dom是什么关系?

JavaScript05

js和dom是什么关系?,第1张

js 即 JavaScript ,是一种网页脚本语言,可以在网页上实现一些动态效果。

DOM 是HTML文档结构,其实就是为了能让js操作html元素而制定的一个规范,dom 的根本就是 document 对象,改对象有很多属性和方法,例如创建节点、复制节点、移除节点、修改属性等。

本文实例讲述了js使用DOM设置单选按钮、复选框及下拉菜单的方法。分享给大家供大家参考。具体实现方法如下:

1.设置单选按钮

单选按钮在表单中即<input

type="radio"

/>它是一组供用户选择的对象,但每次只能选一个。每一个都有checked属性,当一项选择为ture时,其它的都变为false.

先贴上一个例子:

复制代码

代码如下:<script

type="text/javascript">

function

getChoice()

{

var

oForm

=

document.forms["uForm1"]

var

aChoices

=

oForm.camera

for

(i

=

0

i

<

aChoices.length

i++)

//遍历整个单选项表

if

(aChoices[i].checked)

//如果发现了被选中项则退出

break

alert("相机品牌是:"

+

aChoices[i].value)

}

function

setChoice(iNum)

{

var

oForm

=

document.forms["uForm1"]

oForm.camera[iNum].checked

=

true

}

</script>

<form

method="post"

name="uForm1"

action="addInfo.aspx">

相机品牌:

<p>

<input

type="radio"

name="camera"

id="canon"

value="Canon">

<label

for="canon">Canon</label>

</p>

<p>

<input

type="radio"

name="camera"

id="nikon"

value="Nikon">

<label

for="nikon">Nikon</label>

</p>

<p>

<input

type="radio"

name="camera"

id="sony"

value="Sony"

checked>

<label

for="sony">Sony</label>

</p>

<p>

<input

type="radio"

name="camera"

id="olympus"

value="Olympus">

<label

for="olympus">Olympus</label>

</p>

<p>

<input

type="radio"

name="camera"

id="samsung"

value="Samsung">

<label

for="samsung">Samsung</label>

</p>

<p>

<input

type="radio"

name="camera"

id="pentax"

value="Pentax">

<label

for="pentax">Pentax</label>

</p>

<p>

<input

type="radio"

name="camera"

id="others"

value="其它">

<label

for="others">others</label>

</p>

<p>

<input

type="submit"

name="btnSubmit"

id="btnSubmit"

value="Submit"

class="btn">

</p>

<p>

<input

type="button"

value="检测选中对象"

onclick="getChoice()">

<input

type="button"

value="设置为Canon"

onclick="setChoice(0)">

</p>

</form>

如果你想建立的DOM可以使用jsdom 。

还有CHEERIO ,它具有jQuery的界面,比jsdom其快了很多。

你可能会想看看htmlparser2 ,这是一个流分析器,并根据它的基准,这似乎是比别人快,也没有DOM默认。它也可以产生DOM ,因为它也捆绑了创建一个DOM的处理程序。这是一种用于后面CHEERIO解析器。

如果你要解析的HTML抓取,你可以使用YQL 。这里是它的一个节点模块。 YQL我觉得这是最好的解决办法,如果你的HTML是从一个静态的网站,因为你是靠服务,而不是你自己的代码和处理能力。但要注意,如果该页面是由网站的robot.txt的禁止是行不通的, YQL将无法使用它。

如果你想抓取的网站是动态的,那么你应该使用一个无头的浏览器一样phantomjs 。也看看casperjs ,如果你正在考虑phantomjs 。你可以从节点SpookyJS控制casperjs 。

除了phantomjs有zombiejs 。不同,不能嵌入的NodeJS phantomjs , zombiejs仅仅是一个节点的模块。