Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery-选择$(此)中的元素不起作用_Jquery_Html_Jquery Selectors - Fatal编程技术网

jQuery-选择$(此)中的元素不起作用

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是面板的

所以我有这个HTML代码


耕作
下一个
我正在尝试更改
的类

$(“.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);