我有以下脚本:
$('#element_1').live('click', function() {
function_1(this)
});
function function_1(that) {
that = that.attr("id").split('_');
alert(that[0]);
alert(that[1]);
}
我正在尝试拆分“this”的id属性,但是我收到错误:
Object不支持此属性或方法。
然而,当我在点击事件中直接做同样的事情,例如
$('#element_1').live('click', function() {
var that = $(this).attr("id").split('_');
alert(that[0]);
alert(that[1]);
});
如何让脚本的顶级版本正常运行?
答案 0 :(得分:3)
首先用jQuery包装this
:
function_1($(this));
(请注意,您在第二个版本中正确执行此操作,这就是它工作的原因)。
更好的方法是在没有 jQuery的情况下访问id
:
that = that.id.split('_');
答案 1 :(得分:0)
$('#element_1').live('click', function() {
function_1(this)
});
function function_1(that) {
that = $(that).attr("id").split('_');
alert(that[0]);
alert(that[1]);
}
只需为that
添加$,或将行function_1(this)
更改为function_1($(this))
答案 2 :(得分:0)
您忘记在第一个示例中将this
包装在jQuery中。
重写
$('#element_1').live('click', function() {
function_1(this)
});
到
$('#element_1').live('click', function() {
function_1($(this));
});
它应该有用。
常规HTML元素对象没有attr
方法(它特定于jQuery);因此错误。
答案 3 :(得分:0)
像这样调用function_1 function_1($(本));