2009-08-14 27 views
9

Với đánh dấu sau đây.Di chuyển đến một phần tử con cụ thể với Prototype

<div id="example"> 
    <div> 
    <div> 
     <input type='hidden'></input> 
    </div> 
    </div> 
</div> 

Làm cách nào để nhanh chóng có được yếu tố đầu vào bị ẩn vì tôi có ID cho phần tử div cao nhất với ID 'example'?

Tôi có thể hack vào nó để tôi có thể lặp qua từng phần tử con cho đến khi tôi nhấn vào đầu vào, tuy nhiên, tôi muốn cải thiện và sử dụng Prototype và chỉ cần nhảy vào đầu vào ẩn đó cho div.

Cảm ơn!

Trả lời

16
$$('#example input[type=hidden]').first() 
+0

Cảm ơn! Tôi biết nó rất đơn giản (và nó có ý nghĩa hoàn toàn khi nhìn vào nó). Tôi thực sự cần phải bắt kịp tốc độ với JS và tìm thấy những gì tôi cần trong tài liệu. – mwilliams

+0

Điều này bằng cách sử dụng jQuery. Làm thế nào về nhanh chóng nhận được nó bằng cách sử dụng javascript bình thường? – Sriram

+0

Làm thế nào để thực hiện điều này khi 'example' là một lớp, không phải là một id? – Sliq

26

Prototype cung cấp một bó toàn bộ các cách để làm điều này:

// This, from Bill's answer, is probably the fastest, since it uses the 
// Browser's optimized selector engine to get straight to the element 
$$('#example input[type=hidden]').first(); 

// This isn't bad either. You still use the browser's selector engine 
// To get straight to the #example element, then you must traverse a 
// (small) DOM tree. 
// 
// element.down(selector) selects the first node matching the selector which 
// is an decendent of element 
$('example').down('input'); 

// Here, you'll get an array containing all the inputs under 'example'. In your HTML 
// there is only one. 
$('example').select('input') 

// You can also use element.select() to combine separate groups of elements, 
// For instance, if you needed all the form elements: 
$('example').select('input', 'textarea', 'select'); 
-2

Tôi thích cách tiếp cận trực tiếp

document.forms[0].fieldName.value 

Đó là mã ít hơn, không cần phải sử dụng jQuery và nhiều thân thiện với thiết kế mã.

Các vấn đề liên quan