JavaScript如何在元素数组中按类名或name属性选取指定元素
实现方案
你可以使用jQuery的filter()方法从同级元素数组中筛选符合条件的元素,不需要依赖固定索引:
方式1:通过类名idBox筛选
var htmlString = "<span>someText</span><input type='hidden' class='idBox' name='id' data-id='6026' value='6026'>"; var eleArray = $.parseHTML(htmlString); var inputVal = $(eleArray).filter('.idBox').val();
方式2:通过name属性id筛选
var inputVal = $(eleArray).filter('input[name="id"]').val();
补充说明
$.parseHTML返回的是一组同级DOM节点,而jQuery的find()方法仅用于查找元素的后代节点,因此这里必须使用filter()从当前同级节点集合中匹配目标元素。
如果你需要用原生JS实现,也可以直接对DOM数组做筛选:
// 原生JS按类名筛选 const inputEle = eleArray.find(el => el.classList?.contains('idBox')); const inputVal = inputEle ? inputEle.value : ''; // 原生JS按name属性筛选 const inputEle = eleArray.find(el => el.name === 'id'); const inputVal = inputEle ? inputEle.value : '';
内容的提问来源于stack exchange,提问作者Daniel Jørgensen
相关产品推荐
相关产品推荐

