2009-11-03 27 views
5

Tôi đang cố gắng sử dụng phương thức getElementsByTagName ("a") để nhận tất cả các phần tử theo một thẻ cụ thể.Javascript getElementsByTagName

Tuy nhiên, tôi không muốn mọi thẻ liên kết. Làm thế nào tôi sẽ thu hẹp nó vì vậy tôi chỉ chọn tất cả các thẻ neo dưới thẻ ul cho "someListClass" tên?

<ul class="someListClass"> <li><a href... /></li>... </ul>

Tôi biết trong jQuery bạn chỉ có thể chọn với $ ("someListClass a").

Tôi làm như thế nào mà không cần bằng jQuery?

Trả lời

12

Cho ul bạn một id và sau đó sử dụng

<ul id="ulid" class="someListClass"> <li><a href... /></li>... </ul> 

document.getElementById ("ulid").getElementsByTagName ("a"); 

element.getElementsByTagName

elements = element.getElementsByTagName(tagName); 

yếu tố là một NodeList sống của tìm thấy yếu tố theo thứ tự chúng xuất hiện trong cây con.

phần tử là phần tử từ nơi tìm kiếm sẽ bắt đầu. Lưu ý rằng chỉ có con cháu của phần tử này là được bao gồm trong tìm kiếm, chứ không phải chính phần tử .

tagName là tên đủ điều kiện để xem cho. Chuỗi đặc biệt "*" đại diện cho tất cả các phần tử. Để tương thích với XHTML, nên sử dụng chữ thường.

0

Nếu không có khuôn khổ, tôi không thể nghĩ ra cách nào khác ngoài việc đi từng phần tử theo cách thủ công và lặp lại cha mẹ của nó. Nếu một trong số họ có lớp "somelistClass", hãy thêm nó vào ngăn xếp. Nếu không, không.

Nếu bạn đang tìm kiếm con cái của một yếu tố duy nhất, cách tiếp cận của phoenix là cách để đi.

2

bạn có thể sử dụng

element.getElementsByTagName(tagName) 

nơi phần tử là mục UL ... để lấy các item UL sau đó tìm kiếm so với. cái gì đó như:

<ul class="someListClass" id="myList"> <li><a href... /></li>... </ul> 

var theList = document.getElementById('myList'); 
var listItems = theList.getElementsByTagName('li'); 
Các vấn đề liên quan