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仅仅是一个节点的模块。