2016-09-28 135 views
-1

我想当前元素的父,然后为每个在这里检查类是我的代码:得到当前元素的父然后每个元素的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>

这部分代码不能正常工作。我必须删除当前父级其他元素的类。

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

你想要什么?添加一个班级到UL父母的检查单选按钮,并删除它的任何其他UL与这个类? –

+0

每个共用一个通用名称的无线电台只共享一个输入,除非括号中有一个例外IDK。 – zer00ne

+0

我认为你正在寻找'parents.siblings('ul')。find('li> input')' – Satpal

回答

2

你能解释一下为什么你使用这段代码片段?

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

如果你解释一点点,那么一些人可能会给出正确的想法,以最好的方式来做到这一点。还有一件事是你想用你的代码完成的事情?

无论如何,您无法通过parents得到li > input变量,您使用parent()函数存储变量。

你为什么不试试find()这个给你?如:

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

'find()'做了诀窍.. –