从我的理解,这应该是非常简单的,但我在做这件事时遇到了错误。我在网站上有一个按钮,按钮内有不同的跨度,一旦点击它们,使用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();
答案 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'));
});