获取下一个标签 - jquery

时间:2011-06-23 18:47:00

标签: javascript jquery

我有以下标记:

<button class="button" type="button"><span>Edit</span></button>

我想在.button上有一个click事件,它会改变下一个span的值。

所以我将此作为测试:

    $('.button').click(function(){
    $(this).next('span').val();
})

然而,返回'undefined'。如何选择范围?

谢谢!

5 个答案:

答案 0 :(得分:3)

你需要解决两件事。第一个next()适用于兄弟元素。您的span位于button内。所以改成儿童。接下来要获取span元素中的值,您需要使用.html()

$('.button').click(function(){
    $(this).children('span').html();
})

EDITED: 这是jsFiddle

答案 1 :(得分:1)

你想要.text()或.html()取决于你是只想要文本,还是标记随之而来。

编辑:

等一下,你的跨度在按钮内?有趣... 您可以使用$(this).text();来获取文本。

答案 2 :(得分:0)

这是否有效:

$('.button').click(function(){
    $(this).children('span').html();
})

答案 3 :(得分:0)

据我所知,

.val()仅适用于表单元素。使用.text().html()更改<span>

的文字

答案 4 :(得分:0)

在您的示例中,跨度不是“下一个”,它是子节点。如果你的html看起来像这样,你会使用next:

<button class="button" type="button">Click me</button><span>Edit</span>

另外,你想使用html()来获取文本,(正如Björn所提到的)