Javascript 如何获取父span的文本?

Javascript 如何获取父span的文本?,javascript,Javascript,我在获取家长span的文本时遇到问题。这是我正在实现的代码 <span> hello this is test <span>click here</span></span> 您好,这是测试点击这里 我想在点击点击这里时获得你好这个测试的内容 感谢使用jQuery,您可以使用:$(this.parent().text() 对于纯javascript,请检查以下内容:如果您使用jQuery,可能会出现类似的情况 $('span>span').

我在获取家长span的文本时遇到问题。这是我正在实现的代码

<span> hello this is test <span>click here</span></span>
您好,这是测试点击这里
我想在点击
点击这里
时获得
你好这个测试的内容


感谢使用jQuery,您可以使用:
$(this.parent().text()


对于纯javascript,请检查以下内容:

如果您使用jQuery,可能会出现类似的情况

$('span>span').parent('span').clone().find("span").empty().parent().text();

也是一个粗糙的纯js解决方案

var childContent = document.querySelectorAll("span>span")[0].textContent;
var parentContent = "";

var allSpans = document.querySelectorAll("span");

allSpans = Array.prototype.slice.call(allSpans);

allSpans.forEach(function (spanEl) {
    if (spanEl.textContent.replace(childContent,"").length>0) {
        parentContent = spanEl.textContent.replace(childContent,"");
    }
    alert(parentContent);
});


但是,如果您添加了其他人注意到的某种事件或类名,则更可取,因为如果您有更多的跨子级或父级等,情况会变得更糟

HTML

<span> hello this is test <span class="button">click here</span></span>
将您的HTML更改为:

<span> hello this is test <span onclick="showParentText(this)">click here</span></span>

检查这里的fiddle:

第一件事:您应该始终查阅有关的Html和Javascript文档。请看下面的代码。html的结构使得元素节点之后总是出现TextNode。在文档中阅读更多关于此的信息。因此,单击子span元素后要显示的文本节点,因此可以使用DOM API获取所需内容:

<script>
    function respond_to_click_event(event) {
      alert(event.target.previousSibling.wholeText);
    }

</script>

<span> hello this is test 
    <span onclick="respond_to_click_event(event)">click here</span>
</span> 

函数响应点击事件(事件){
警报(event.target.previousSibling.wholeText);
}
你好,这是考试
点击这里

您可以输入代码吗?请明确这是针对jQuery的,因为OP没有标记jQuery……而且它甚至不起作用(它也返回内部span的文本)。jQuery没有问题。但当我提醒它的时候,我会看到一个空白的弹出窗口
window.showParentText = function(obj) {
    var thisText = obj.outerHTML,
        parentText = obj.parentNode.innerHTML;

    alert(parentText.replace(thisText, ""));
}
<script>
    function respond_to_click_event(event) {
      alert(event.target.previousSibling.wholeText);
    }

</script>

<span> hello this is test 
    <span onclick="respond_to_click_event(event)">click here</span>
</span>