如何从span传递/提取文本?

时间:2014-06-08 18:00:11

标签: javascript jquery

如何在点击时将span的值传递给回调?

<span class="test" onClick="testFunction(this);">Test</span>

function testFunction(e) {
    alert(JSON.stringify(e));
}

但我总是处于警戒状态

{}

如何从span传递/提取文本? 我需要onClick内部标记,而不是以另一种方式附加。

3 个答案:

答案 0 :(得分:4)

您正在将元素正确传递给函数。

当您使用JSON.stringify时,您无法获得任何结果。元素只在其原型中定义了成员,它没有任何成员添加到对象实例本身。 stringify函数只包含对象实例的成员,而不是其原型的成员,因此您就像在空对象上调用它一样。

如果从元素中获取某些属性并显示该属性,您会看到实际上有一个对它的引用:

function testFunction(e) {
  alert(e.tagName); // shows "SPAN"
}

或:

function testFunction(e) {
  alert(e.innerHTML); // shows "Test"
}

演示:http://jsfiddle.net/F3S4T/

答案 1 :(得分:3)

您可以执行以下操作:

<span class="test" onClick="testFunction(this);">Test</span>

function testFunction(elem) {
    alert(elem.innerHTML);
}

答案 2 :(得分:1)

要获取span标记(或任何HTML标记)中的内容,可以使用元素的innerHTML属性。 E.g,

function testFunction(e) {
    alert(e.innerHTML);
}