2010-10-04 53 views
1

有沒有在java腳本中只有一個特定名稱的方法,而不是使用document.getElementsByName("x");哪個返回數組?我有一種特殊的情況,我不能使用id。有什麼建議嗎? 謝謝。如何通過名稱獲得html元素

回答

10

剛拿到的第一個元素:

document.getElementsByName("x")[0]; 

或者安全:

function getFirstElementByName(element_name) { 
    var elements = document.getElementsByName(element_name); 
    if (elements.length) { 
     return elements[0]; 
    } else { 
     return undefined; 
    } 
} 

(BTW getElementsByName返回一個集合,而不是一個數組)

+0

在java腳本中,數組和集合之間有真正的區別嗎? – Harshana 2010-10-05 04:43:58

+0

是的。他們有不同的屬性。 – Quentin 2010-10-05 06:09:26

7

如果你正在尋找一個單一的元素,採取從節點列表的第一個,例如:

var element = document.getElementsByName("x")[0]; 

You can test it out here

0

或者使用jQuery,所以你不必煩惱所有的瀏覽器煩惱。

你只需要做到這一點:

$("*[name='x']").first(); 

要獲得該名稱的第一個元素。如果您知道元素類型,則可以使用它而不是「*」。 jQuery會讓你的生活更輕鬆!

+0

或$(「* [name ='x']」)。first()如果沒有返回元素,它不會拋出錯誤。 – softcr 2010-10-04 16:25:50

+5

可愛,不知何故,我認爲在這種情況下'getElementsByName'遠不如「煩人」。 – MooGoo 2010-10-04 16:49:28