Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.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 - Fatal编程技术网

Jquery—查找最接近的匹配范围不是';行不通

Jquery—查找最接近的匹配范围不是';行不通,jquery,Jquery,我试图设置一个变量来匹配最近匹配范围内显示的文本。我试过10种不同的方法,当我提醒它(显示它得到了什么)时,它总是要么什么也不显示,要么说未定义 这是html <div class="list-group-item"> <span class="list-group-item-heading commenter-name">Test Name</span><span class="pull-right"><a id="78564610">

我试图设置一个变量来匹配最近匹配范围内显示的文本。我试过10种不同的方法,当我提醒它(显示它得到了什么)时,它总是要么什么也不显示,要么说未定义

这是html

<div class="list-group-item">
<span class="list-group-item-heading commenter-name">Test Name</span><span class="pull-right"><a id="78564610">Reply</a> <span class="small text-muted">Mar 29 2017, 00:59:57</span></span>
<p class="list-group-item-text">First comment on page.</p>
</div>
我试图让$test包含span的内容和类‘commenter name’——因此在本例中,$test应该设置为“test name”;但我总是得到一个空的响应或未定义的响应

如果我把它改成这样

var $test = $(this).closest('span').text();
它显示了当前范围内的所有内容(它将显示
回复2017年3月29日00:59:57
),但无论出于何种原因,我都无法引用包含名称的其他范围

上面有几组HTML,但我不明白这有什么关系,因为我一直在尝试最接近的、parents、parent、prev和find
$(“a”)。单击(函数(){
var$test=$(this.parent().prev('.commenter name').text();
警报($测试);
})

测试名称回复2017年3月29日00:59:57
第页的第一条评论

并不是字面上的“最近”意思。该方法向上遍历层次结构。因为它不是锚的父母,所以你不会得到结果

对于集合中的每个元素,通过测试元素本身并在DOM树中遍历其祖先,获取与选择器匹配的第一个元素

使用

$(“a”)。单击(功能(e){
e、 预防默认值();
var$test=$(this).closest('.list-group-item').find('.commenter-name').text();
console.log($test);
});

测试名称2017年3月29日00:59:57
第页的第一条评论


使用此选项。这是有效的

$(“a”)。单击(函数(){
var$test=$(this).closest('.list组项')
.find('.commenter name').text();
警报($测试);
})

测试名称

回复
2017年3月29日,00:59:57 第页的第一条评论


只是一个想法,但您是否尝试过,
$(this).prev('.commenter name').text()
?如果ofc您的html结构总是像这样,只是尝试了一下,它仍然返回并发出警报,但没有任何内容(空)。我也尝试了相同的格式,但使用了最接近的格式,并用find代替它尝试这个
$(this.parent().prev('.commenter name').text()
可能
$(this).parent().parent().find('.commenter name').html()
@Larry7我尝试了Guradio演示,它非常完美。您还希望得到什么?谢谢!!这是可行的,它现在得到了正确的HTML:)将标记这作为答案,只要它允许我
var $test = $(this).closest('span').text();
var $test = $(this)
            .closest('.list-group-item') //Target  common parent
            .find('.commenter-name') //target the element
            .text();