2011-06-23 52 views
1

我有以下标记:获取下一个标签 - jQuery的

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

我想要改变下一个跨度值上.button click事件。

所以我有这样一个试验:

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

这将返回 '未定义' 但是。我如何选择跨度?

谢谢!

回答

3

你需要修复两件事情。第一个next()适用于兄弟元素。您的span位于button之内。所以把它改为儿童。接下来获得span元素中你需要使用的.html()

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

编辑的值: 这里是一个jsFiddle

1

你想.text()或.html()取决于你想只是文本,或标记与它一起去。

编辑:

等待一秒钟,你的跨度是你的按钮内?有趣... 你可以使用$(this).text();来获得文本。

0

这是否工作:

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

'.VAL()'是不是在这里使用正确的方法。 –

+0

@Drackir谢谢。我改变了它。 – jncraton

0

.val()仅适用于表单元素,据我所知。使用.text().html()更改<span>的文本

0

在你的例子中,span不是'next',它是一个子节点。你会使用下一个,如果你的HTML看起来是这样的:

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

此外,要获得使用HTML文本(),(如比约恩提到)