2011-12-03 24 views
0

我有一個帶有幾個可解釋LI元素的UL。我正在做一個Javascript來自動點擊這些LI元素。這是我到目前爲止有:Javascript - 嘗試使用腳本單擊LI元素

function getElementsByClassName(node,classname) { 
    if (node.getElementsByClassName) { // use native implementation if available 
    return node.getElementsByClassName(classname); 
    } else { 
    return (function getElementsByClass(searchClass,node) { 
     if (node == null) 
      node = document; 
     var classElements = [], 
      els = node.getElementsByTagName('*'), 
      elsLen = els.length, 
      pattern = new RegExp('(^|\\s)'+searchClass+'(\\s|$)'), i, j; 

     for (i = 0, j = 0; i < elsLen; i++) { 
      if (pattern.test(els[i].className)) { 
       classElements[j] = els[i]; 
       j++; 
      } 
     } 
     return classElements; 
    })(classname, node); 
    } 
} 

// ajaxListLI is the class of the LI elements I want 
var elements = getElementsByClassName(document, 'ajaxListLI'); 

,如果我在這一點上做的警報(elements.length),我得到的頁面

對李的正確數目,但如果我嘗試點擊一個的元素,例如使用

elements[2].click(); //2 is just an example. It can be any number 

,或者我試圖掩蓋使用

elements[2].style.display = 'none'; 

絕對沒有的元素髮生......我錯過了什麼?

謝謝。

+0

你真的需要純js嗎? –

+0

你爲什麼這麼問?我可能會這樣做。 – SpaceDog

+0

似乎工作正常。你是否檢查過返回數組是否具有所有期望的元素? –

回答

2

適合我。 Live demo

+0

這很奇怪,它不適合我...我的意思是,你發佈的這個腳本有效,但不是我的真的頁面。 – SpaceDog

+0

@DigitalRobot,好吧,那麼也許你可以提供一些關於你的頁面的更多細節。理想情況下,在jsfiddle上展示一個示例來說明問題,因爲它顯然不是這個函數。 –

+0

這是一個簡化版本的頁面http ://jsfiddle.net/LnHP8/ – SpaceDog

相關問題