<a id="link1" name="link1" href="http://bbs.51js.com/">51js</a>
=============
同一頁面內的引用方法:
1、使用id:
link1.href
2、使用name:
document.all.link1.href
3、使用sourseIndex:
document.all(4).href //注意,前面還有HTML、HEAD、TITLE和BODY,所以是4
4、使用鏈接集合:
document.anchors(0).href //全部的集合有all、anchors、applets、areas、attributes、behaviorUrns、bookmarks、boundElements、cells、childNodes、children、controlRange、elements、embeds、filters、forms、frames、images、imports、links、mimeTypes、options、plugins、rows、rules、scripts、styleSheets、tBodies、TextRectangle,請參考MSDN介紹。其實方法3和方法4是一樣使用的集合,只是一個是all,可以包括頁面所有標記,而anchors只包括鏈接。
5、getElementById:
document.getElementById("link1").href
6、getElementsByName:
document.getElementsByName("link1")[0].href //這也是一個集合,是所有name等於該方法所帶參數的標記的集合
7、getElementsByTagName:
document.getElementsByTagName("A")[0].href //這也是一個集合,是所有標記名稱等於該方法所帶參數的標記的集合
8、tags集合:
document.all.tags("A")[0].href //與方法7一樣是按標記名稱取得一個集合
除此之外,event.scrElement可以獲得觸發時間的標記的引用;document.elementFromPoint(x,y)可以獲得x和y坐標處的元素的引用;document.body.componentFromPoint(event.clientX,event.clientY)可以獲得鼠標所在處元素的引用;還可以通過元素的父子節點和兄弟節點關系來引用,如nextSibling(當前節點的後一節點)、previousSibling(當前節點的前一節點)、childNodes、children、firstChild、lastChild、parentElement等都是父子節點和兄弟節點的一些引用;還不僅限於此。
上面是同一頁面內的常見引用方法,另外還涉及到不同頁面中的
=============
對於分幀的頁面,可以使用parent.frames("幀的name")、top.frames("幀的name")來引用不同的幀,後面的引用和同一頁面內市相同的,多重的parent也是支持的。
例如:
parent.frames("frame1").document.all.link1
top.frames("frame1").document.all.link1
=============
對於window.open()開的窗口,可以使用var newwin=window.open(),然後使用newwin來引用新窗口,後面的引用和同一頁面內是相同的;新窗口可以使用window.opener來引用打開它的窗口,可以簡寫作opener,例如:
var newwin=window.open()
父窗口(這裡是使用window.open()方法的窗口):
newwin.document.all.link1 //父窗口這句可引用新窗口中的對象
子窗口(window.open()方法打開的窗口):
opener.document.all.link1 //子窗口這句可引用父窗口的對象
多重opener也是支持的,例如:opener.opener.document.all.link1
方法多種多樣,有時候需要根據具體的情況而定,靈活運用才可以游刃有余。