Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.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
Javascript .closest()返回未定义的_Javascript_Jquery - Fatal编程技术网

Javascript .closest()返回未定义的

Javascript .closest()返回未定义的,javascript,jquery,Javascript,Jquery,我有以下清单: <div id="saved"> <ul class="list-group" style="display: block;"> <li class="marked list-group-item">box-shadow:<span class="marked_text">0px 0px rgb(200,200,200)</span>;<a class="pull-right multipl

我有以下清单:

<div id="saved">
    <ul class="list-group" style="display: block;">
        <li class="marked list-group-item">box-shadow:<span class="marked_text">0px 0px rgb(200,200,200)</span>;<a class="pull-right multiple-shadows checkbox-active">Click</a>
        </li>
    </ul>
</div>
问题是.text()的值是空的,而.html()的值是未定义的。有什么想法吗?

$。closest()的值是父项()。您需要的是
$(this).sibbines(“span”)
。还要尝试限制jQuery中选择器的数量<代码>$('a.multiple-shadows')
已经足够了


编辑:如果您有多个span同级,要获取第一个span同级,请使用
$(this).sibbines(“span”).first()
最接近的
查找元素最接近的祖先。
span
a
标记的兄弟,因此
最近的
返回
未定义的
是正确的。您的a位于
li
的内部,后者位于
ul
的内部,后者位于
div
的内部,因此这些是
最接近的
将返回任何内容的唯一元素。

由于span位于
a
标记之前,您可以简单地使用
.prev()
函数

$(this).toggleClass("checkbox-active");
var roll = $(this).prev().text();
console.log(roll);
Fiddle:

.closest
“通过测试元素本身并在DOM树中向上遍历其祖先来匹配选择器”()。因此,
.closest
将不匹配任何兄弟姐妹,而匹配祖先。相反,您可以使用
.prev()


控制台记录您的
并查看它指向什么
$(this).toggleClass("checkbox-active");
var roll = $(this).prev().text();
console.log(roll);
$("#saved").on("click", ".multiple-shadows",function(){

    $(this).toggleClass("checkbox-active");

    var roll=$(this).prev().text();
    alert(roll);
});