如何从选区中删除部分文本?

时间:2013-06-30 05:44:37

标签: javascript jquery html

我正在尝试按下按钮触发选择未嵌套的文本的功能。例如,在以下代码中:

<a class="button">Hey<span>123</span></a>   <!-- alerts "Hey" -->
<a class="button">Hi<span>123</span></a>    <!-- alerts "Hi" -->
<a class="button">Hello<span>123</span></a> <!-- alerts "Hello" -->

每个链接都会调用一个函数来警告不在<span>范围内的文本。例如,第一个链接将触发一个警告“嘿”,第二个“嗨”和第三个“你好”(在上面的评论中说明)的功能。

当然,我有以下代码,但我无法弄清楚如何审查<span>中的文本(或可能位于外部锚元素内的其他元素)。

$("div.sideBox").on("click", ".button", Handler);

function Handler(event) {
    alert($(this).html());
}

2 个答案:

答案 0 :(得分:1)

如果您将类.button放入锚标记

,这应该可行
<a class="button">Hey<span>123</span></a>
<a class="button">Hi<span>123</span></a> 
<a class="button">Hello<span>123</span></a>

另外,使用javascript DOM元素属性firstChild获取文本节点,nodeValue获取其值,忽略子span元素的文本。

function Handler(event) {
    alert(this.firstChild.nodeValue);
}

<强> Demo

答案 1 :(得分:0)

我将从您提供的HTML开始。首先,我会删除<grey>标记,因为它不是有效的HTML标记。我会在您要输出的值周围放置<span>标记,这样可以在JavaScript中轻松访问它们。

HTML:

<a class="stag"><span>Hey</span>123></a>
<a class="stag"><span>Hi</span>123</a> 
<a class="stag"><span>Hello</span>123</a>

然后使用此JavaScript返回这些值(使用示例中的JQuery):

$("a.stag").click(function() {
    alert($(this).first("span").text());
});