jQuery-选择$(此)中的元素不起作用
所以我有这个HTML代码jQuery-选择$(此)中的元素不起作用,jquery,html,jquery-selectors,Jquery,Html,Jquery Selectors,所以我有这个HTML代码 耕作 下一个 我正在尝试更改中的类 $(“.panel”)。在(“单击”、“.app下一步按钮”上,函数(){ var面板; var目标; panel=$(this).closest('.panel'); target=$(面板).closest('.fa插入符号向下'); console.log(panel);//返回OK。 console.log(目标);//返回 }); 为什么console.log(target)没有返回?fa-caret-down是面板的
耕作
下一个
我正在尝试更改
中
的类
$(“.panel”)。在(“单击”、“.app下一步按钮”上,函数(){
var面板;
var目标;
panel=$(this).closest('.panel');
target=$(面板).closest('.fa插入符号向下');
console.log(panel);//返回OK。
console.log(目标);//返回
});
为什么
console.log(target)
没有返回
?fa-caret-down
是面板的子级
,最近的方法不选择该选择器,最近的方法选择最近的父div。您可以使用find方法代替:
target = $(panel).find('.fa-caret-down');
closest()
查找DOM树上的祖先,但您希望查找.panel
使用find()
查找后代
$(".panel").on("click", '.app-next button', function(){
var $panel =$(this).closest('.panel');
var $target = $panel.find('.fa-caret-down');
console.log($target); //Returns <button>
});
$(“.panel”)。在(“单击”、“.app下一步按钮”上,函数(){
var$panel=$(this).closest('.panel');
var$target=$panel.find('.fa插入符号向下');
console.log($target);//返回
});
请注意,在$()
中包装现有的jQuery对象是多余的,而且效率低下。在您的代码面板中
已经是一个可以使用jQuery方法的jQuery对象您必须了解其工作原理
描述:对于集合中的每个元素,获取第一个
通过测试元素本身并向上遍历来匹配选择器
通过DOM树中的祖先
您可以使用:
.closest()仅向上移动,而不是向下移动
您要查找的代码是:
target = $('.fa-caret-down',panel);
这相当于说“在面板内查找.fa插入符号”你能创建一个小提琴吗?首先你要找到最接近的
.panel
,但从那里开始,锚不是最接近的,,它是一个后代元素,所以你需要查找()
target = $('.fa-caret-down',panel);