我正在尝试按下按钮触发仅选择未嵌套的文本的功能。例如,在以下代码中:
<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());
}
答案 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());
});