这个语法有什么问题?
var on_a = 0; // declared outside document ready
on_a = $("#sb_results > a:first");
$(on_a + " .sbr_row").addClass('sbr_row_act');
sb_url = $(on_a).attr('href');
上面的和这个有什么不同?
$("#sb_results > a:first .sbr_row").addClass('sbr_row_act');
sb_url = $("#sb_results > a:first").attr('href');
最后一个可以工作,但第一个不行。
最佳答案
因为 on_a
是一个 jQuery 对象,所以您要连接它的 toString
表示形式,最终看起来像这样:
"[object Object] .sbr_row"
你想要的是:
on_a = $("#sb_results > a:first");
on_a.find(".sbr_row").addClass('sbr_row_act');
...等同于:
$("#sb_results > a:first .sbr_row").addClass('sbr_row_act');
选择器中a:first
和.sbr_row
之间的空格是descendant-selector
(docs) ,这实际上与使用 find()
(docs) 相同方法。
关于jquery 第一个子语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4840532/