.prev()是否不按照jQuery api文档操作?
出于一般的好奇,我想知道为什么在.prev()是否不按照jQuery api文档操作?,jquery,Jquery,出于一般的好奇,我想知道为什么在.prev 根据api,使用.prev可以操作元素的前置元素 jQuery:这里只是一个片段,完整的代码 HTML: <div class="static-sublayers"> <div id="log1">elf <span class="will">1</span> </div> </div>
.prev
根据api,使用.prev
可以操作元素的前置元素
jQuery:这里只是一个片段,完整的代码
HTML:
<div class="static-sublayers">
<div id="log1">elf <span class="will">1</span> </div>
</div>
<a class="add" href="#">Add</a>
精灵1
基本上,上面的a
是元素el
和IappendTo
是.prev()
块,我让它工作的唯一方法是用div包装.static子层
从我对api的理解来看,.prev
得到了前面的元素,所以我不知道为什么要包装它
这是一个如此初级的问题,但我再次提出这个问题纯粹是出于好奇,希望能够更好地使用jQuery,特别是更好地理解.prev()
这样一个简单的问题
同样的,这篇文章更深入地展示了代码,您可以更好地理解我,我已经注释掉了正在工作的HTML
编辑:
我一贴出这封信,就把小提琴弄乱了,找到了我的答案。在发布之前,我试图彻底测试所有内容,在询问copy.appendTo(jQuery(el).prev('.static sublayers'))之前,我这样做了
然后意识到我需要像.prev()
一样将.prev
留空。。。因此,如果目标是嵌套的,那么.find()
是一个很好的解决方案,但是如果标记很简单,而且前面的元素根本没有嵌套,那么copy.appendTo(jQuery(el.prev())
就是解决方案。您正在使用.prev().find('.static sublayers')
,它将在带有类静态子层的div中搜索.static sublayers
。尝试使用以下方法:
copy.appendTo(jQuery(el).prev());
您在这里使用el
,但它没有在任何地方定义copy.appendTo(jQuery(el.prev().find)('.static sublayers')代码>是的,我使用copy.appendTo(jQuery(el.prev())找到了它代码>工作。。。.find将在实时代码中派上用场,如果目标是嵌套的,则需要上述逻辑。但是如果它与实时代码不同,那么这个copy.appendTo(jQuery(el.prev())
是合适的。前面的元素是”。静态子层“
,因此.find()
没有找到任何内容,因为.find()
只查看子体,而不是当前元素<代码>不需要.find()
。@Jbird是在小提琴中定义的,我只是想在这里快速地放一个片段。。很抱歉,如果这有误导性,但我不想添加太多的代码…最好是所有代码都放在这里,而不是只放一点没有意义的代码,然后再把网上最好的代码链接起来。是的,这么简单的错误,我问了之后就发现了。。但公平地说,这确实帮助我更好地理解了.prev()
的工作原理,如果目标嵌套在前一个块中,那么使用.find
是很好的。
copy.appendTo(jQuery(el).prev());