这可能是一个是/否类型的问题.
我试图在jquery中绝对禁用元素的所有子元素.
打电话
$('#id_of_an_element').children().do(function(){
do_something;
});
Run Code Online (Sandbox Code Playgroud)
递归地调用一个元素的所有子元素,或者只do_something对所有直接后代进行调用an_element?
感谢帮助,
玩笑
kar*_*m79 71
给定一个表示一组DOM元素的jQuery对象,.children()方法允许我们 在DOM树中搜索这些元素的 直接子元素,并从匹配元素构造一个新的jQuery对象..find()和.children()方法类似,只是后者只沿DOM树向下移动一个级别.另请注意,与大多数jQuery方法一样,.children()不返回文本节点; 要获取包括文本和注释节点在内的所有子节点,请使用.contents().
http://api.jquery.com/children/
如果要对任何嵌套级别的所有后代执行操作,则可以执行此操作:
$('#id_of_an_element').find('*').attr('disabled', true);
Run Code Online (Sandbox Code Playgroud)
或使用后代选择器:
$('#id_of_an_element *').attr('disabled', true);
Run Code Online (Sandbox Code Playgroud)
由于您想影响所有后代,因此请执行以下操作:
$('#id_of_an_element *').each(function() {
// do something
});
Run Code Online (Sandbox Code Playgroud)
但我很好奇您到底在做什么。
disabled对于许多元素类型,该属性都没有意义。您所做的任何事情都可能会受益于CSS的继承。
或者,如果您实际上想要该disabled属性,那么您也可以仅定位form元素。
$('#id_of_an_element :input').attr('disabled','disabled');
Run Code Online (Sandbox Code Playgroud)