2010-08-26 31 views
26

Tôi đang ở trong một hàm và tôi cần trả về một đối tượng jQuery có hai phần tử. Bên trong hàm tôi có, ví dụ:Làm cách nào để nối hai đối tượng phần tử jQuery? .add() không hoạt động

function getInput() { 
    $hiddenInput = $('<input type="hidden">'); 
    //(other code) 
    $select = $('<select></select>'); 
    //(other code) 
    $hiddenInput.add($select); 
    return $hiddenInput; 
} 

Và bên ngoài tôi có:

$myContainer.append(getInput()); 

Kết quả dự kiến ​​sẽ là:

<div id="container"><input type="hidden"><select></select></div> 

Nhưng điều duy nhất tôi nhận được ngay bây giờ với .add() chỉ là phần tử đầu vào chứ không phải là lựa chọn. Làm thế nào tôi có thể kết hợp hai yếu tố hình thức trên chức năng trở lại? Nếu không thể với jQuery, thì với JavaScript đơn giản. Cảm ơn rất nhiều.

Trả lời

43

add() tạo (và trả về) một đối tượng jQuery mới là liên kết của tập hợp gốc và những gì bạn thêm vào, nhưng bạn vẫn trả về bản gốc trong hàm của mình. Bạn dường như đã muốn làm điều này thay vì:

function getInput() { 
    $hiddenInput = $('<input type="hidden">'); 
    //(other code) 
    $select = $('<select></select>'); 
    //(other code) 
    return $hiddenInput.add($select); 
} 
+0

Ồ, của tôi, đó là trong tài liệu. Tôi đã không đọc tốt. Cảm ơn rất nhiều! –

+0

Tài liệu Jquery cho biết thứ tự sắp xếp không được xác định trong trường hợp này. –

+1

trong ngắn hạn, chúng tôi nói '.add()' là * không phá hủy * – chharvey

5

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

$hiddenInput.after($select); 

Điều đó sẽ đưa $select sau $hiddenInput, đạt những gì bạn muốn để có được.

+1

Ngược lại, bạn có thể sử dụng: '$ select.insertAfter ($ hiddenInput);' – js1568

+0

Đó không đã làm việc. Tôi chỉ nhận được phần tử đầu vào mà không có lựa chọn, như với add(). –

+2

Có thể không có phần tử nào trong DOM được nêu ra? –

2

Bạn có thể sử dụng như sau:

this.MergejQueryObjects = function(arrayOfJqueryObjects) { 
     return $($.map(arrayOfJqueryObjects, function (el) { 
      return el.get(); 
     })); 
    } 
Các vấn đề liên quan