我得到问题是得到父跨度的文本。这是我正在实施的代码
<span> hello this is test <span>click here</span></span>
我希望点击hello this test
获得click here
内容。
谢谢
答案 0 :(得分:1)
如果您对jQuery没有任何问题,可以使用这样的基本解决方案
<强> HTML 强>
<span> hello this is test <span class="button">click here</span></span>
<强>的jQuery 强>
$(document).ready(function(){
$('.button').on('click', function(){
var parentElement = $(this).parent().clone();
parentElement.children('span').remove()
alert(parentElement.text());
});
});
答案 1 :(得分:1)
将您的HTML更改为:
<span> hello this is test <span onclick="showParentText(this)">click here</span></span>
并在脚本标记中添加以下函数:
window.showParentText = function(obj) {
var thisText = obj.outerHTML,
parentText = obj.parentNode.innerHTML;
alert(parentText.replace(thisText, ""));
}
在此处查看小提琴:http://jsfiddle.net/F7YFB/
答案 2 :(得分:1)
首先要做的事情是:您应该始终查阅mozilla site上的Html和Javascript文档。看下面的代码。 html以这样的方式构造,即在Element节点之后总是出现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>
答案 3 :(得分:0)
如果您使用的是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);
});
然而,如果您添加某种事件,如其他人已经注明或类名,则更为可取,因为如果您有更多的孩子或父母等,这会变得更糟
答案 4 :(得分:-1)
使用jQuery,您可以使用:$(this).parent().text();
。
对于纯JavaScript,请查看:Get parent element of a selected text