javascript - 获取下一个和上一个节点类型

标签 javascript jquery

我有以下 HTML:

<body>Testing1<span id="t1" style="background-color: green;">Testing2</span>Testing3</body>

当我尝试以下操作时:

alert(window.jQuery('#t1').prev().nodeType); // undefined - tried get(0) as well

alert(window.jQuery('#t1').get(0).nodeType); // 1

alert(window.jQuery('#t1').next().nodeType); // undefined

为什么当我尝试获取上一个和下一个文本元素的节点类型时,我得到了未定义?

奇怪的是,如果我在跨度之前放置 b 标记,则 prev().get(0).nodeType 返回 1 code> 这是否意味着文本节点和注释无法检测到?

最佳答案

问题是 prevnext 返回 jQuery 对象,而不是 DOM 元素。您必须再次使用get:

alert(window.jQuery('#t1').next().get(0).nodeType);

请注意,您也可以使用数组语法来获取指定索引处的底层 DOM 元素:

alert(window.jQuery('#t1').next()[0].nodeType);

编辑

重新阅读您的问题,发现您已经尝试过。您认为 prevnext 将不会获取文本或注释节点是正确的。他们只会获得元素。

#t1 之前的文本节点不是元素,因此 prev 不会返回任何内容(#t1< 之前或之后没有同级元素)/)。

你可以这样做:

alert(window.jQuery('#t1').get(0).previousSibling.nodeType); //3
alert(window.jQuery('#t1').get(0).nextSibling.nodeType); //3

但我不完全确定这些浏览器的兼容性。

关于javascript - 获取下一个和上一个节点类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7874171/

相关文章:

javascript - RoR 3.1 - 用于锁定用户的button_to_function

javascript - 尝试使用正文解析器从 Express v4 中的 POST 请求解析 JSON 对象

javascript - 如何使 JavaScript 函数中的文本居中?

javascript - jQuery 可排序,但需要点击

javascript - 是否可以检查鼠标指针是否在某个类上?

javascript - 使用 JSON.stringify 时将原型(prototype)函数添加回返回的 Google Maps API 对象

javascript - 想要使用 jquery 从 php 获取的 json 填充数据列表

java - 使用jquery在jsp页面中接受http session 请求参数

javascript - 如何突出显示所选选项卡?

php - WordPress网站网址困惑