Javascript - 单击带有类的跨度

时间:2013-01-28 16:14:03

标签: javascript jquery firebug

从我的理解,这应该是非常简单的,但我在做这件事时遇到了错误。我在网站上有一个按钮,按钮内有不同的跨度,一旦点击它们,使用Jquery就会改变跨度。使用Firebug,我试图看到我的click方法适用于第一个span文本,但由于某种原因我收到以下错误。我究竟做错了什么? (注意,页面上正在使用最新的Jquery)

HTML:

<button id="signup_forms_submit" class="chrome big on_dark signup_forms_submit touchy blue">
        <span class="account_btn">Start</span>
        <span class="birthday_btn">Next</span>
        <span class="captcha_btn"><span><b>Almost</b> <b>Done!</b></span></span>
        <span class="login_btn">Log in</span>
    </button>

Jquery命令:

$('.account_btn').click();

Firebug控制台日志:

TypeError: $(...) is null

$('.account_btn').click();

5 个答案:

答案 0 :(得分:0)

尝试

$('span .account_btn').click();

答案 1 :(得分:0)

从未在按钮内看到“子按钮”。首先尝试创建单个按钮,可能是跨度但不在此按钮标签内。 这个html是用js生成的吗?也许你应该使用

$(document).on('click','.account_btn', function(){...});

然后

答案 2 :(得分:0)

可能你有兼容性问题。

尝试:

$J = jQuery.noConflict();
$J(function() {
    $J('.account_btn').click();
});

答案 3 :(得分:0)

在您的控制台中,键入:

jQuery

这给你带来了什么?因为看起来你根本没有加载jQUery。尝试打开一个新选项卡(空选项卡)并将其输入控制台,看看你会得到什么: - )

$('.span').click()
TypeError: Cannot call method 'click' of null

答案 4 :(得分:0)

由于您的跨度位于按钮内,因此初始点击事件将触发按钮的点击事件,而不是跨越特定的操作。

如果您希望按钮内的每个跨度都有不同的事件,则应将它们包含在div而不是按钮上并绑定事件:

$(function(){  
    $('span.account_btn').click(function(e){
        e.preventDefault(); 
        // Do something
    });
});

此外,如果您编写以下内容,您会看到“account_btn”类的范围不为空。

$(function(){
    console.log($('span.account_btn'));
});