You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery通过属性选择元素后获取nodeName返回undefined问题排查

问题分析:jQuery获取元素后访问nodeName返回undefined

你的HTML代码

<objeto bordeactivo type="image">
  <img src="https://picsum.photos/536/354"/>
</objeto>

你的jQuery代码

var ob = $("[bordeactivo]");
var ob2 = ob.find("img");

// 正常运行
alert("ob>"+ob.attr("type"));

// 无法工作
alert("nodeName>"+ob2.nodeName);

问题根源

ob和ob2都是jQuery包装后的对象,不是原生DOM节点:

  • jQuery对象没有nodeName这个属性,所以直接访问ob2.nodeName会返回undefined。
  • 而ob.attr("type")能正常运行,是因为attr()是jQuery专门提供的、用于操作DOM属性的方法。

解决方法

有两种方式可以获取到nodeName:

  1. 使用jQuery的.prop()方法读取原生DOM属性:
alert("nodeName>"+ob2.prop("nodeName"));
  1. 将jQuery对象转换为原生DOM节点后再访问属性:
    • 通过索引取第一个匹配元素:ob2[0].nodeName
    • 或者用jQuery的.get()方法:ob2.get(0).nodeName

修改后的完整代码示例:

var ob = $("[bordeactivo]");
var ob2 = ob.find("img");

// 正常运行
alert("ob>"+ob.attr("type"));

// 方案1:使用prop方法
alert("nodeName>"+ob2.prop("nodeName"));

// 方案2:转换为原生DOM节点
alert("nodeName>"+ob2[0].nodeName);

内容的提问来源于stack exchange,提问作者Renato Ramos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 19:08:06