2016-04-25 11 views
0

Ist es möglich, 3 oder mehr DOM-Objekte in jQuery zusammenzuführen? Ich fand diese Lösung hier in Stackoverflow, aber es ist nur 2 Objekte zu verschmelzenden: Merging jQuery objectsWie man mehr als 2 DOM-Objekte mit jQuery zusammenführen?

Beispiel:

var input1 = $('.input-1'), 
    input2 = $('#parent-div input'), 
    input3 = $('.input-3'), 
    input4 = $('.input-4'), 
    input5 = $('.input-5') 

    merge([input1, input2, input3, input4]).val('My custom input text'); 

In meinem Fall habe ich mehrere Eingänge haben, aber ich möchte nur einige von ihnen verschmelzen.

Antwort

0

Können wir $.add() verwenden nur in folgenden Weise :

$(document).ready(function(){ 
 
    var input1 = $('.input-1'); 
 
    var input2 = $('#parent-div input'); 
 
    var input3 = $('.input-3'); 
 
    var input4 = $('.input-4'); 
 
    var input5 = $('.input-5'); 
 
    
 
    var collection = $(input1); 
 
    // Capture the new collection 
 
    collection = collection.add(input2).add(input3).add(input4); 
 
    collection.val('My custom input text'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
<input type="text" class="input-1" value="defualt text" > 
 
<div id="parent-div"> 
 
    <input type="text" class="input-2" value="defualt text" > 
 
    <input type="text" class="input-3" value="defualt text" > 
 
</div> 
 
<input type="text" class="input-3" value="defualt text" > 
 
<input type="text" class="input-4" value="defualt text" > 
 
<input type="text" class="input-5" value="defualt text" >

0

Sie könnten eine Hilfsfunktion erstellen, die nur eine Iteration über das Array von jQuery Objekten:

function merge(jqs) { 
    var obj = $(); 
    jqs.forEach(function (jq) { 
    obj.add(jq); 
    }); 
    return obj; 
} 

Sie auch so etwas wie dies versuchen könnten:

function merge(jqs) { 
    return $(Array.prototype.concat.apply([], jqs.map(function (jq) { return Array.from(jq); }))); 
} 
Verwandte Themen