这种语法有什么问题?
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
,实际上与使用find()
方法相同。