<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>相信明天会更好 &#187; DOM</title>
	<atom:link href="http://www.sunnyweiwei2008.cn/tag/dom/feed" rel="self" type="application/rss+xml" />
	<link>http://www.sunnyweiwei2008.cn</link>
	<description>Tomorrow will be better</description>
	<lastBuildDate>Thu, 25 Feb 2010 08:20:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>js中的文档对象模型应用</title>
		<link>http://www.sunnyweiwei2008.cn/2008/09/js%e4%b8%ad%e7%9a%84%e6%96%87%e6%a1%a3%e5%af%b9%e8%b1%a1%e6%a8%a1%e5%9e%8b%e5%ba%94%e7%94%a8.html</link>
		<comments>http://www.sunnyweiwei2008.cn/2008/09/js%e4%b8%ad%e7%9a%84%e6%96%87%e6%a1%a3%e5%af%b9%e8%b1%a1%e6%a8%a1%e5%9e%8b%e5%ba%94%e7%94%a8.html#comments</comments>
		<pubDate>Wed, 17 Sep 2008 14:19:16 +0000</pubDate>
		<dc:creator>sunny</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[DOM]]></category>

		<guid isPermaLink="false">http://www.sunnyweiwei.cn/?p=51</guid>
		<description><![CDATA[创建元素节点：document.createElement(&#8220;a&#8221;); 创建文本节点：document.createTextNode(&#8220;stw&#8221;); 文本节点的值可以通过nodeValue来获得。 添加文本节点或者是元素节点可以通过appendChild()来实现，这种方法是把刚加入的元素放在末尾的位置上。 JavaScript语言: js添加文本节点和元素节点 1 var textnode=document.createTextNode(&#8220;stw&#8221;); 2 var elementnode=document.createElement(&#8220;a&#8221;); 3 elementnode.appendChild(textnode); 也可以把待插入节点放在某个节点之前，方法insertBefore可以实现，但是他有两个参数：第一个是待插入节点，第二个是现有的节点，该函数是将待插节点插入在现有节点之前。 例如： HTML语言: 未插入之前的代码 1 &#60;p id=&#8220;startLinks&#8221;&#62; 2 &#60;a id=&#8220;sirius&#8221; href=&#8220;sirius.html&#8221; &#62;sirus &#60;/a&#62; 3 &#60;/p&#62; JavaScript语言: 实现在特定元素节点前面加入元素节点的语句 1 var textnode=document.createTextNode(&#8220;stw&#8221;); 2 var elementnode=document.createElement(&#8220;a&#8221;); 3 elementnode.appendChild(textnode); 4 var existnode=document.getElementById(&#8220;sirius&#8221;); 5 var parentnode=existnode.parentNode; 6 parentnode.insertBefore(elementnode,existnode); 删除元素节点或者文本节点可以用removeChild：例如要删除上面html中的&#60;a&#62;&#60;/a&#62;之间的内容可以用： JavaScript语言: 删除节点 1 var removenode=document.getElementById(&#8220;sirius&#8221;); 2 var [...]]]></description>
			<content:encoded><![CDATA[<p>创建元素节点：document.createElement(&#8220;a&#8221;);</p>
<p>创建文本节点：document.createTextNode(&#8220;stw&#8221;);</p>
<p>文本节点的值可以通过nodeValue来获得。</p>
<p>添加文本节点或者是元素节点可以通过appendChild()来实现，这种方法是把刚加入的元素放在末尾的位置上。</p>
<div style="background: #fdfdfd none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style="text-decoration: underline;">JavaScript语言</span>: <a href="http://www.fayaa.com/code/view//">js添加文本节点和元素节点</a></div>
<div class="source" style="font-family: "><span class="lineno" style="color: #008800; font-style: italic;">1</span> <span class="_kd" style="font-weight: bold; color: #000080;">var</span><span class="_"> </span><span class="_nx">textnode</span><span class="_o">=</span><span class="_nb">document</span><span class="_p">.</span><span class="_nx">createTextNode</span><span class="_p">(</span><span class="_s2">&#8220;stw&#8221;</span><span class="_p">);</span><br />
<span class="lineno">2</span> <span class="_kd">var</span><span class="_"> </span><span class="_nx">elementnode</span><span class="_o">=</span><span class="_nb">document</span><span class="_p">.</span><span class="_nx">createElement</span><span class="_p">(</span><span class="_s2">&#8220;a&#8221;</span><span class="_p">);</span><br />
<span class="lineno">3</span> <span class="_nx">elementnode</span><span class="_p">.</span><span class="_nx">appendChild</span><span class="_p">(</span><span class="_nx">textnode</span><span class="_p">);</span></div>
<p>也可以把待插入节点放在某个节点之前，方法insertBefore可以实现，但是他有两个参数：第一个是待插入节点，第二个是现有的节点，该函数是将待插节点插入在现有节点之前。</p>
<p><span id="more-51"></span></p>
<p>例如：</p>
<div style="background: #fdfdfd none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style="text-decoration: underline;">HTML语言</span>: <a href="http://www.fayaa.com/code/view//">未插入之前的代码</a></div>
<div class="source" style="font-family: "><span class="lineno" style="color: #008800; font-style: italic;">1</span> <span class="_nt" style="font-weight: bold; color: #000080;">&lt;p</span><span class="_"> </span><span class="_na">id=</span><span class="_s">&#8220;startLinks&#8221;</span><span class="_nt">&gt;</span><br />
<span class="lineno">2</span> <span class="_nt">&lt;a</span><span class="_"> </span><span class="_na">id=</span><span class="_s">&#8220;sirius&#8221;</span><span class="_"> </span><span class="_na">href=</span><span class="_s">&#8220;sirius.html&#8221;</span><span class="_"> </span><span class="_nt">&gt;</span><span class="_">sirus </span><span class="_nt">&lt;/a&gt;</span><br />
<span class="lineno">3</span> <span class="_nt">&lt;/p&gt;</span></div>
<div class="source" style="font-family: "><span style="text-decoration: underline;">JavaScript语言</span>: <a href="http://www.fayaa.com/code/view//">实现在特定元素节点前面加入元素节点的语句</a></div>
<div class="source" style="font-family: "><span class="lineno" style="color: #008800; font-style: italic;">1</span> <span class="_kd" style="font-weight: bold; color: #000080;">var</span><span class="_"> </span><span class="_nx">textnode</span><span class="_o">=</span><span class="_nb">document</span><span class="_p">.</span><span class="_nx">createTextNode</span><span class="_p">(</span><span class="_s2">&#8220;stw&#8221;</span><span class="_p">);</span><br />
<span class="lineno">2</span> <span class="_kd">var</span><span class="_"> </span><span class="_nx">elementnode</span><span class="_o">=</span><span class="_nb">document</span><span class="_p">.</span><span class="_nx">createElement</span><span class="_p">(</span><span class="_s2">&#8220;a&#8221;</span><span class="_p">);</span><br />
<span class="lineno">3</span> <span class="_nx">elementnode</span><span class="_p">.</span><span class="_nx">appendChild</span><span class="_p">(</span><span class="_nx">textnode</span><span class="_p">);</span><br />
<span class="lineno">4</span> <span class="_kd">var</span><span class="_"> </span><span class="_nx">existnode</span><span class="_o">=</span><span class="_nb">document</span><span class="_p">.</span><span class="_nx">getElementById</span><span class="_p">(</span><span class="_s2">&#8220;sirius&#8221;</span><span class="_p">);</span><br />
<span class="lineno special">5</span> <span class="_kd">var</span><span class="_"> </span><span class="_nx">parentnode</span><span class="_o">=</span><span class="_nx">existnode</span><span class="_p">.</span><span class="_nx">parentNode</span><span class="_o">;</span><br />
<span class="lineno">6</span> <span class="_nx">parentnode</span><span class="_p">.</span><span class="_nx">insertBefore</span><span class="_p">(</span><span class="_nx">elementnode</span><span class="_o">,</span><span class="_nx">existnode</span><span class="_p">);</span></div>
<p>删除元素节点或者文本节点可以用removeChild：例如要删除上面html中的&lt;a&gt;&lt;/a&gt;之间的内容可以用：</p>
<div style="background: #fdfdfd none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style="text-decoration: underline;">JavaScript语言</span>: <a href="http://www.fayaa.com/code/view//">删除节点</a></div>
<div class="source" style="font-family: "><span class="lineno" style="color: #008800; font-style: italic;">1</span> <span class="_kd" style="font-weight: bold; color: #000080;">var</span><span class="_"> </span><span class="_nx">removenode</span><span class="_o">=</span><span class="_nb">document</span><span class="_p">.</span><span class="_nx">getElementById</span><span class="_p">(</span><span class="_s2">&#8220;sirius&#8221;</span><span class="_p">);</span><br />
<span class="lineno">2</span> <span class="_kd">var</span><span class="_"> </span><span class="_nx">parentnode</span><span class="_o">=</span><span class="_nx">removenode</span><span class="_p">.</span><span class="_nx">parentNode</span><span class="_o">;</span><br />
<span class="lineno">3</span> <span class="_nx">parentnode</span><span class="_p">.</span><span class="_nx">removeChild</span><span class="_p">(</span><span class="_nx">removenode</span><span class="_p">);</span></div>
<p>元素属性值的读写：分别用getAttribute()和setAttribute（）来实现</p>
<div style="background: #fdfdfd none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style="text-decoration: underline;">JavaScript语言</span>: <a href="http://www.fayaa.com/code/view//">查找拥有特定属性值得所有元素</a></div>
<div class="source" style="font-family: "><span class="lineno" style="color: #008800; font-style: italic;">1</span> <span class="_kd" style="font-weight: bold; color: #000080;">var</span><span class="_"> </span><span class="_nx">inputs</span><span class="_o">=</span><span class="_nb">document</span><span class="_p">.</span><span class="_nx">getElementByTagName</span><span class="_p">(</span><span class="_s2">&#8220;input&#8221;</span><span class="_p">);</span><br />
<span class="lineno">2</span> <span class="_k">for</span><span class="_p">(</span><span class="_kd">var</span><span class="_"> </span><span class="_nx">i</span><span class="_o">=</span><span class="_mi">0</span><span class="_o">;</span><span class="_nx">i</span><span class="_o">&lt;</span><span class="_nx">inputs</span><span class="_p">.</span><span class="_nx">length</span><span class="_o">;</span><span class="_nx">i</span><span class="_o">++</span><span class="_p">)</span><br />
<span class="lineno">3</span> <span class="_p">{</span><br />
<span class="lineno">4</span> <span class="_k">if</span><span class="_p">(</span><span class="_nx">inputs</span><span class="_p">[</span><span class="_nx">i</span><span class="_p">].</span><span class="_nx">getAttribute</span><span class="_p">(</span><span class="_s2">&#8220;type&#8221;</span><span class="_p">)</span><span class="_o">==</span><span class="_s2">&#8220;checkbox&#8221;</span><span class="_p">)</span><br />
<span class="lineno special">5</span> <span class="_p">{&#8230;.}</span><br />
<span class="lineno">6</span> <span class="_p">}</span></div>
<div class="source" style="font-family: ">当然这里也可以用一个函数直接来实现对某个属性的元素，查该函数是：getElementByAttribute().</div>
<div class="source" style="font-family: ">
<ul>
<li>查找一个页面中的所有元素最简单的方法是getElementByTagName(&#8220;*&#8221;)，当然也可以直接用document.all。这个命令是所有浏览器都兼容的。</li>
<li>在一个含有多个表单的页面中要想准确的获取某个表单，可以利用该表单的id号来获取，例如：</li>
</ul>
</div>
<div style="background: #fdfdfd none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style="text-decoration: underline;">HTML语言</span>: <a href="http://www.fayaa.com/code/view//">页面中的表单元素</a></div>
<div class="source" style="font-family: "><span class="lineno" style="color: #008800; font-style: italic;">1</span> <span class="_nt" style="font-weight: bold; color: #000080;">&lt;form</span><span class="_"> </span><span class="_na">id=</span><span class="_s">&#8220;form1&#8243;</span><span class="_"> </span><span class="_na">name=</span><span class="_s">form1</span><span class="_nt">&gt;</span><br />
<span class="lineno">2</span> <span class="_">&#8230;</span><br />
<span class="lineno">3</span> <span class="_nt">&lt;/form&gt;</span><br />
<span class="lineno">4</span> <span class="_nt">&lt;form</span><span class="_"> </span><span class="_na">id=</span><span class="_s">&#8220;form2&#8243;</span><span class="_"> </span><span class="_na">name=</span><span class="_s">form2</span><span class="_nt">&gt;</span><br />
<span class="lineno special">5</span> <span class="_">&#8230;.</span><br />
<span class="lineno">6</span> <span class="_nt">&lt;/form&gt;</span></div>
<div style="background: #fdfdfd none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style="text-decoration: underline;">JavaScript语言</span>: <a href="http://www.fayaa.com/code/view//">准确定位表单元素代码：</a></div>
<div class="source" style="font-family: "><span class="lineno" style="color: #008800; font-style: italic;">1</span> <span class="_kd" style="font-weight: bold; color: #000080;">var</span><span class="_"> </span><span class="_nx">wantform</span><span class="_o">=</span><span class="_nb">document</span><span class="_p">.</span><span class="_nx">forms</span><span class="_p">[</span><span class="_s2">"form1"</span><span class="_p">];</span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunnyweiwei2008.cn/2008/09/js%e4%b8%ad%e7%9a%84%e6%96%87%e6%a1%a3%e5%af%b9%e8%b1%a1%e6%a8%a1%e5%9e%8b%e5%ba%94%e7%94%a8.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

