2017-07-13 4 views
0

Ich habe eine Überprüfung alle und es funktioniert, aber das Problem ist, ich habe mehrere Zeilen mit der gleichen Überprüfung alle Funktionen und ich will nur, dass die Check-All funktioniert nur durch die Clostest Ul mit den eingängen aber wie kann ich das machen?jQuery finden Sie nächstgelegenen ul und überprüfen Sie nur diese Eingänge

Die JS

 $('.css-margin').each(function() { 
      $(this).val(s); 
     }); 

Die HTML

<div class="css-margin-padding"> 
<div class="check-all"> 
    <span class="dashicons dashicons-lock css-checkall margin-checkall"></span> 
    Link all values. 
</div> 

<ul> 
    <li><label>Top</label><input type="text" class="css-margin" name="" tabindex="1"></li> 
    <li><label>Right</label><input type="text" class="css-margin" name="" tabindex="2"></li> 
    <li><label>Bottom</label><input type="text" class="css-margin" name="" tabindex="3"></li> 
    <li><label>Left</label><input type="text" class="css-margin" name="" tabindex="4"></li> 
</ul> 
</div> 

Antwort

2

Dies wird für Sie funktionieren ..!

$(document).ready(function() { 
 
    $('.margin-checkall').parent().next('ul').find('li').each(function() { 
 
    \t $(this).find('.css-margin').val('Text for test'); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="check-all"> 
 
    <span class="dashicons dashicons-lock css-checkall margin-checkall"></span> 
 
    Link all values. 
 
</div> 
 

 
<ul> 
 
    <li><label>Top</label><input type="text" class="css-margin" name="" tabindex="1"></li> 
 
    <li><label>Right</label><input type="text" class="css-margin" name="" tabindex="2"></li> 
 
    <li><label>Bottom</label><input type="text" class="css-margin" name="" tabindex="3"></li> 
 
    <li><label>Left</label><input type="text" class="css-margin" name="" tabindex="4"></li> 
 
</ul>

+0

Hallo, jetzt nur noch ein geändert ... alle Eingänge in der Nähe ul Notwendigkeit zu verbinden. Wenn Sie also eine Eingabe eingeben, ändern sich auch die anderen 3. Es funktionierte, aber weil ich mehr check-alls und Listen auf einer Seite habe, als Sie dann einen alle Eingänge prüften, die miteinander verbunden wurden, und ich nur whant der Check-all jeder Kastenverbindung mit den nächsten UL-Eingängen. (hoffe, Sie verstehen) – Maanstraat

+0

Dann müssen Sie die ID jeder Eingabe erhalten, wenn Sie einen dynamischen Wert in jeder Eingabe möchten. –

+0

Wie meinst du das? Es funktioniert alles, wenn ich eine Check-All-Div und eine UL auf einer Seite habe. wenn ich auf das Symbol klicke und die Nummer eins in einen Eingang fülle, haben alle 4 Eingänge dann 1 in ihnen. Aber wenn ich eine andere Check-All und eine UL-Liste auf der Seite habe und auf eines der 2 Icons klicke und die Nummer 1 in eine Eingabe fülle, haben alle 8 Inputs einen und das ist nicht so, wie es funktionieren muss. – Maanstraat

0
$('.margin-checkall.checked').parent().next().find('.css-margin').each(...) 

Dieser lesen wie: Finden Sie Elemente mit Klasse margin-checkall und kontrolliert; Hol dir das Elternteil (div); Nimm nächstes Element (ul); Finden Sie darin jedes Element mit der Klasse css-margin; Und schließlich Ihre jede Funktion

Verwandte Themen