如何在jQuery中获取已标识容器内的未标识<ul>元素以执行append操作?
解决获取
- 元素并添加新列表项的问题
嘿,我来帮你搞定这个小问题!你之前用$('#myDiv').has('ul')拿到的是包含ul的div元素,这是因为.has()方法的作用是筛选出包含指定后代元素的父元素,而不是返回那个后代本身。要获取到里面的
- 元素,有几种简单直接的方法:
方法1:直接定位目标
既然你明确知道
- 在
#myDiv内部,最省事的方式就是用选择器直接选中它:// 直接获取#myDiv下的ul元素 var $ul = $('#myDiv ul'); // 添加新列表项 $ul.append('<li>Thing 3</li>');
方法2:用.find()查找后代元素
如果已经先获取了div元素,你可以用.find()方法在它的所有后代中定位
- :
// 先获取div元素 var $div = $('#myDiv'); // 在div的所有后代里查找ul var $ul = $div.find('ul'); // 追加新的列表项 $ul.append('<li>Thing 3</li>');
.find()会遍历目标元素的所有层级后代,适合不确定ul是否是直接子元素的场景。
方法3:用.children()获取直接子元素
如果像你的代码结构那样,
- 是
#myDiv的直接子元素,用.children()会更高效——它只查找目标元素的直接子节点:var $div = $('#myDiv'); // 获取div的直接子元素ul var $ul = $div.children('ul'); $ul.append('<li>Thing 3</li>');
这几种方法都能帮你拿到想要的
- 元素,之后调用
.append()添加新列表项就完全没问题啦!内容的提问来源于stack exchange,提问作者ggonmar
相关产品推荐
相关产品推荐

