Javascript 使用给定根查找所有可见元素
给定以下代码Javascript 使用给定根查找所有可见元素,javascript,jquery,Javascript,Jquery,给定以下代码 var a = $('<div><div></div></div>'); a.css("visibility", "visible"); a.find("* :visible"); var a=$(''); a、 css(“可见性”、“可见”); a、 查找(“*:可见”); 因此,我收到一个空数组[],而不是div。我做错了什么?您尚未将元素添加到页面中,因此它尚未调整大小。大小为零的元素不可视。要检查元素是否可见,必须将其插入
var a = $('<div><div></div></div>');
a.css("visibility", "visible");
a.find("* :visible");
var a=$('');
a、 css(“可见性”、“可见”);
a、 查找(“*:可见”);
因此,我收到一个空数组
[]
,而不是div
。我做错了什么?您尚未将元素添加到页面中,因此它尚未调整大小。大小为零的元素不可视。要检查元素是否可见,必须将其插入DOM中。您也不需要*
选择器。试试这个:
var a = $('<div><div></div></div>'); // create an element
a.css("visibility", "visible");
$("BODY").append(a) // Add the element to the DOM first
a.find(":visible")
alert(a.find(":visible").length); // displays '1'
var a=$('');//创建一个元素
a、 css(“可见性”、“可见”);
$(“BODY”).append(a)//首先将元素添加到DOM中
a、 查找(“:可见”)
警报(a.find(“:visible”).length);//显示“1”
如果没有*选择器,查询将返回外部元素而不是内部元素。@Guffa我已经测试过了,事实并非如此。使用和不使用*
返回1个元素。这是因为它恰好是外部元素中的一个元素。关键是查询返回不同的元素。如果没有*
,结果是不一样的。您是正确的,没有*
,结果是不同的-很抱歉,这是我之前评论中的一个错误。但是,*
绝对不应在该小提琴的选择器中使用,以证明:是的,您是对的,不应使用*,因为使用了find
方法,该方法在所选元素内搜索。