html中查找第二个元素,从一个HTML字符串构建的jQuery对象中查找一个元素

博客讨论了在JavaScript中如何从HTML字符串构建jQuery对象,并有效地查找和操作元素。作者遇到在jQuery对象中使用.find()方法无法找到预期元素的问题,通过代码重构,将.find()替换为.filter(),解决了问题,减少了DOM操作次数,提高了代码可读性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我希望能够从一个HTML字符串构建一个jQuery对象并直接在里面搜索。从一个HTML字符串构建的jQuery对象中查找一个元素

例子:

htmlString = '

Foo

$html = $(htmlString)

$groups = $html.find('.groups') // Returns []. WTF?

我预计find居然发现div元素。

如果你想知道更多关于我的问题的情况下,我开发一个应用骨干,并呈现一定的意见我有这样的事情:

render: ->

$html = $(@template(vehicle: @vehicle))

$groups = $()

_(@groups).each (group)=>

subview = new App.Views.AttributesGroup(group: group, vehicle: @vehicle)

$groups = $groups.add(subview.render().el)

$(@el).html($html)

$(@el).find('.groups').replaceWith($groups)

@

我正在寻找一种更优雅的方式来达到相同的结果。

谢谢!

谢谢马特,这很清楚。我没有想到这个关于后代和兄弟姐妹的微妙之处,我感到很愚蠢。

所以我重构我的代码:

render: ->

$html = $(@template(vehicle: @vehicle))

$groups = $html.filter('.groups')

_(@groups).each (group)=>

subview = new App.Views.AttributesGroup(group: group, vehicle: @vehicle)

$groups.append(subview.render().el)

$(@el).html($html)

@

现在只有一个DOM插入和代码看起来更清晰的给我。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值