通过类名遍历jQuery元素获取值:div元素取值异常问题
解决方法
问题出在你遍历拿到的item是原生DOM元素,不是jQuery包装后的对象:
- 对于input这类表单元素,原生DOM有
.value属性可以获取值,但div没有这个属性,所以返回undefined。 .text()是jQuery的方法,原生DOM元素没有这个方法,直接用item.text自然无效。
你可以用以下两种方式获取div的内容:
方式1:转为jQuery对象处理
把原生DOM元素用$(item)包装成jQuery对象,再调用.text()(获取纯文本)或.html()(获取带HTML标签的内容):
$.each(convInputs, function(index, item){ const content = $(item).text(); alert(content); });
方式2:使用原生DOM方法
直接用原生DOM的textContent(标准属性)或innerText(兼容性稍好)获取div文本:
$.each(convInputs, function(index, item){ const content = item.textContent; alert(content); });
兼容表单元素和div的写法
如果你的.convertUnits类同时包含表单元素和div,可以通过判断标签类型分别处理:
$.each(convInputs, function(index, item){ let content; // 判断是否为表单元素 const formTags = ['INPUT', 'SELECT', 'TEXTAREA']; if (formTags.includes(item.tagName)) { content = item.value; } else { content = item.textContent; } alert(content); });
内容的提问来源于stack exchange,提问作者JoMojo
相关产品推荐
相关产品推荐

