2009-06-20 56 views
5

Khi người dùng nhấp vào img ở cuối "li" sau, tôi muốn nhận giá trị của đầu vào bị ẩn hai phần tử trước đó.Làm thế nào để chọn giá trị của đầu vào ẩn liền kề với Jquery?

<ul id="theLists"> 
    <li> 
    <input class="checkbox" type="checkbox" name="row"/> 
    <input class="contentId" type="hidden" value="64" name="id"/> 
    <div id="64" class="editable">Peanuts for me</div> 
    <img src="/img/delete.gif" alt="delete"/> 
    </li> 
</ul> 

Tôi cố gắng này:

$(document).ready(function(){ 
    $("#theLists img").click(function(){ 
     var contentId = $(this).closest("input[name='id']").val();   
    }); 

Để vô ích. Bất kỳ ý tưởng? Tôi cần phải đặt một var với id hàng, mà trong trường hợp này là "64".

Trả lời

10

gần nhất (...) là nút cha gần nhất, không phải là anh chị em gần nhất.

Trên thực tế, có nhiều cách để thực hiện những gì bạn muốn.

Hãy thử những:

var contentId = $(this).siblings("input[name='id']").val(); 

var contentId = $(this).parent().children("input[name='id']").val(); 

var contentId = $(this).prev().prev().val(); 
+0

Cảm ơn, sử dụng phương pháp anh chị em. Cũng tốt để biết rằng hợp chất prev() s có thể được sử dụng. – kevtrout

+0

Không có hành vi phạm tội với Jeff, nhưng trong khi điều này trả lời câu hỏi trực tiếp của bạn, nó không bao gồm bạn nếu bạn cần phải di chuyển thẻ IMG, ví dụ trong một khoảng hoặc div để tạo kiểu cho nó. – tags2k

+0

Tất nhiên nó chỉ trả lời câu hỏi trực tiếp. Nếu có đề cập đến bất kỳ chung "làm thế nào để thiết lập đầu vào này" hoặc tương tự, câu trả lời của tôi sẽ khác nhau. Tuy nhiên, nếu câu hỏi xác định một phương pháp luận, tôi phải giả định đó là những gì cần thiết, so với bất kỳ lời khuyên nào về cách xử lý những gì nếu có. Hy vọng tôi không có vẻ xúc phạm, chỉ muốn làm rõ là tất cả. –

0

đẹp và rẻ tiền:

var contentId = $(this).parents('li:first').find('.contentId').val(); 
2

See complete solution here.

Bạn có thể di chuyển các thuộc tính id đến chứa <li>, loại bỏ các lĩnh vực tiềm ẩn và chỉ sử dụng:

var contentId = $(this).parent().get(0).id; 

Lợi thế ở đây là trong tương lai bạn có thể thêm các hành động khác, như "chỉnh sửa", v.v. mà không cần lo lắng về vị trí của anh chị em.

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