我试图获取点击元素的ID属性,听起来很简单,但我收到以下错误:
Uncaught error: Syntax error, unrecognized expression: .posttag- Window]
这是我编写的代码
$('#blogposts_filters > li > a').click(function(e) {
var $this = $(this),
thistag = toString($this.parent().attr('id')).substring(7);
console.log(thistag) //returns [Object Window] if substring(0)
// Filter through
$('#blogposts_list .posttag-' + thistag).toggleClass('hidden');
e.preventDefault();
});
尝试了一些不同的东西,但我对js / jquery很新,有点难过。 非常感谢任何帮助。
答案 0 :(得分:3)
首先,除非你已经将toString
函数重新定义为其他东西(在这种情况下我们需要看到它!),你可能实际上并不需要它。数字将自己投射到字符串,例如'string' + 123 == 'string123'
。
此外,toString
实际上是一种方法!所以你所做的就是在全球范围内调用它,window.toString()
总是返回[Object Window]
。不是你想要的。
因此,只需使用.attr('id')
并信任JavaScript即可将数字转换为字符串:
$('#blogposts_filters > li > a').click(function(e) {
var $this = $(this),
thistag = $this.parent().attr('id');
// Filter through
$('#blogposts_list .posttag-' + thistag).toggleClass('hidden');
e.preventDefault();
});
答案 1 :(得分:2)
在点击事件中获取特定元素的ID ...只需使用此
$('#blogposts_filters > li > a').click(function(e) {
var id = $(this).attr('id');
});