2016-09-28 7 views
-1

Ich möchte Eltern aktuelle Element erhalten, dann jeweils für die Klasse überprüfen hier ist mein Code:aktuelle Element Eltern erhalten dann jedes Element jquery

jQuery('input[name^="opt"]').click(function() { 
 
    if (
 
    jQuery(this).hasClass('current_option') && 
 
    jQuery(this).is(':checked') 
 
) { 
 
    jQuery(this).prop('checked', false); 
 
    jQuery(this).removeClass('current_option'); 
 
    opConfig.reloadPrice(); 
 
    } else { 
 
    var parents=jQuery(this).parent().parent(); 
 
    jQuery(parents +'li > input').each(function() { 
 
     alert("445"); 
 
    }); 
 
    jQuery(this).addClass('current_option'); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
    <li><input type="radio" value="1" name="opt[1]" /><li> 
 
    <li><input type="radio" value="1" name="opt[1]" /><li> 
 
    <li><input type="radio" value="1" name="opt[1]" /><li> 
 
    <li><input type="radio" value="1" name="opt[1]" /><li> 
 
</ul> 
 
<ul> 
 
    <li><input type="radio" value="1" name="opt[2]" /><li> 
 
    <li><input type="radio" value="1" name="opt[2]" /><li> 
 
    <li><input type="radio" value="1" name="opt[2]" /><li> 
 
    <li><input type="radio" value="1" name="opt[2]" /><li> 
 
</ul> 
 
<ul> 
 
    <li><input type="radio" value="1" name="opt[3]" /><li> 
 
    <li><input type="radio" value="1" name="opt[3]" /><li> 
 
    <li><input type="radio" value="1" name="opt[3]" /><li> 
 
    <li><input type="radio" value="1" name="opt[3]" /><li> 
 
</ul>

Dieser Teil der Code nicht funktioniert . Ich muss die Klasse für aktuelle Eltern andere Elemente entfernen.

var parents=jQuery(this).parent().parent(); 
jQuery(parents +'li > input').each(function() { 
    alert("445"); 
}); 
+0

Was willst du? Fügen Sie eine Klasse zu UL-übergeordnetem Optionsfeld hinzu und entfernen Sie es von einem anderen UL mit dieser Klasse? –

+0

Jedes Radio, das einen gemeinsamen Namen hat, teilt nur eine einzige Eingabe, es sei denn, die Klammern bilden eine Ausnahme IDK. – zer00ne

+0

Ich denke du siehst 'eltern.siblings ('ul'). Find ('li> input')' – Satpal

Antwort

2

Können Sie erklären, warum Sie diesen Teil des Snippets verwendet haben?

var parents=jQuery(this).parent().parent(); 
jQuery(parents +'li > input').each(function() { 
    alert("445"); 
}); 

Wenn Sie etwas erklären, dann gibt jemand vielleicht die richtige Idee zum besten Weg, es zu tun. und noch etwas, was du wirklich mit deinem ganzen Code machen willst?

Wie auch immer, Sie können nicht li > input von parents Variable erhalten, die Sie speichern, indem Sie parent() Funktion verwenden.

warum versuchen Sie es nicht find() für Sie? wie:

$(parents).find('input').each(function() { 
    alert("445"); 
}); 
+0

'find()' hat den Trick .. –

Verwandte Themen