我有若干個元素,如:<div class="test">
<p style="display: none">1</p>
<p style="display: none">2</p>
<p style="display: none">3</p>
<p style="display: none">4</p>
</div>在$(function(){})中初始化第一個p為可見:$('.test :nth-child(1)').css('display','block');然后在$(function(){})外面用:visible選擇器選擇該元素并賦值給變量:var aa = $('.test p:visible');再在控制臺顯示:$('#say').click(function () { console.log(aa);
});此時控制臺輸出為:context:documentlength:0prevObject:m.fn.init[1]selector:".test p:visible"但是,如果直接在控制臺輸出:$('#say').click(function () { console.log($('.test p:visible'));
});則會顯示該元素:0:pcontext:documentlength:1prevObject:m.fn.init[1]selector:".test p:visible"另外,如果把上述jquery代碼都放在$(function(){})中,則控制臺輸出都正常。再有,其他選擇器還沒遇到這個問題,:hidden也沒遇到。這究竟是什么原因呢?
jquery的:visible選擇器選取的對象賦值給變量后,控制臺顯示該變量指向的元素集為空?
滄海一幻覺
2018-09-14 10:09:18