获取Javascript函数中div的最后一个子级
我使用了一段相当简单的代码,并将其包装到一个函数中,该代码从div中的项构建了一个滑出菜单。我现在尝试从div中获取最后一个子项:获取Javascript函数中div的最后一个子级,javascript,jquery,Javascript,Jquery,我使用了一段相当简单的代码,并将其包装到一个函数中,该代码从div中的项构建了一个滑出菜单。我现在尝试从div中获取最后一个子项: experimentOne('#experimentOne'); function experimentOne(masterContainer) { var experimentOneMenuButton = $('masterContainer :last-child'); ... etc 但是,这会在日志中返回[]。当我检查宽度时,应该是1
experimentOne('#experimentOne');
function experimentOne(masterContainer) {
var experimentOneMenuButton = $('masterContainer :last-child');
... etc
但是,这会在日志中返回[]。当我检查宽度时,应该是1420,而不是100px,我猜是窗口宽度
如果我只是通过在所有内容中编码来获取ID的最后一个子项,这很好,但我希望函数尽可能可重用
谢谢。如果您的masterContainer是一个元素,请尝试以下操作:
var experimentOneMenuButton = $(':last-child', masterContainer);
或者,如果它是元素id的字符串,则为
var experimentOneMenuButton = $('#'+masterContainer+' :last-child');
如果masterContainer是元素,请尝试以下操作:
var experimentOneMenuButton = $(':last-child', masterContainer);
或者,如果它是元素id的字符串,则为
var experimentOneMenuButton = $('#'+masterContainer+' :last-child');
masterContainer
是一个包含父容器值的变量,因此在构建选择器时,需要将其与字符串连接一起使用
var experimentOneMenuButton = $(masterContainer + ' :last-child');
也可以使用基于上下文的查找
var experimentOneMenuButton = $(':last-child', masterContainer);
我推荐第二种解决方案,它使用上下文基础查找,因为它更整洁
演示:
masterContainer
是一个包含父容器值的变量,因此在构建选择器时,需要将其与字符串连接一起使用
var experimentOneMenuButton = $(masterContainer + ' :last-child');
也可以使用基于上下文的查找
var experimentOneMenuButton = $(':last-child', masterContainer);
我推荐第二种解决方案,它使用上下文基础查找,因为它更整洁
演示:- 使用“#”选择id为的元素
- 您需要使用“>”将直接子元素作为目标,[space]将元素的所有子元素作为目标
$(“#主容器>:最后一个子容器”)代码>
- 使用“#”选择id为的元素
- 您需要使用“>”将直接子元素作为目标,[space]将元素的所有子元素作为目标
$(“#主容器>:最后一个子容器”)代码>
- 管柱内的容器不会起任何作用。我认为应该是:
$(masterContainer).find(':last-child');
还要注意,experimentOne(“#experimentOne”)代码>将发送一个字符串而不是jQuery对象。这需要experimentOne($('#experimentOne')代码>,将留下:
experimentOne($('#experimentOne'));
function experimentOne(masterContainer) {
var experimentOneMenuButton = masterContainer.find(':last-child');
// Note the lack of jQuery wrapper around masterContainer in this version
取决于您是要在参数中还是在函数本身中强制jQuery对象 字符串中的容器将不会起任何作用。我认为应该是:
$(masterContainer).find(':last-child');
还要注意,experimentOne(“#experimentOne”)代码>将发送一个字符串而不是jQuery对象。这需要experimentOne($('#experimentOne')代码>,将留下:
experimentOne($('#experimentOne'));
function experimentOne(masterContainer) {
var experimentOneMenuButton = masterContainer.find(':last-child');
// Note the lack of jQuery wrapper around masterContainer in this version
取决于您是要在参数中还是在函数本身中强制jQuery对象 您的连接错误。试着这样做:
$(masterContainer+:最后一个子项)
您的连接错误。试着这样做:
$(masterContainer+':最后一个子项)
如果“masterContainer”应该是一个id,那么$(“#”+masterContainer+':最后一个子项”)虽然在这种情况下,'masterContainer:last child'
应该是masterContainer+':last child'
,或者更好的是$(masterContainer).children().last()
函数期望的“masterContainer”是什么?一串HTMLElementObject?var-experimentOneMenuButton=$(主容器).children().last();如果“masterContainer”应该是一个id,那么$(“#”+masterContainer+”:最后一个子项)虽然在这种情况下,'masterContainer:last child'
应该是masterContainer+':last child'
,或者更好的是$(masterContainer).children().last()
函数期望的“masterContainer”是什么?一串HTMLElementObject?var-experimentOneMenuButton=$(主容器).children().last();作品