获取javascript中上一个同级锚点元素的id

获取javascript中上一个同级锚点元素的id,javascript,attributes,siblings,Javascript,Attributes,Siblings,已解决:要获取上一个元素的id,请使用previousElementSibling.id而不是previousSibling.id。感谢Xufox和Skyline3000,他们很快提供了解决方案 当点击一个breakcrump(即父类别)时,我会尝试获取上一个兄弟的id。 例如,水果>苹果>青苹果 不幸的是,我的代码不起作用 警报(this.previousSibling)返回[对象文本] alert(this.previousSibling,id)返回id未定义 警报(this.previ

已解决:要获取上一个元素的id,请使用
previousElementSibling.id
而不是
previousSibling.id
。感谢Xufox和Skyline3000,他们很快提供了解决方案


当点击一个breakcrump(即父类别)时,我会尝试获取上一个兄弟的id。 例如,
水果>苹果>青苹果

不幸的是,我的代码不起作用

  • 警报(this.previousSibling)
    返回
    [对象文本]
  • alert(this.previousSibling,id)
    返回
    id未定义
  • 警报(this.previousSibling,getAttribute(\'id')
    返回
    类型错误:this.previousSibling.getAttribute不是函数
  • 警报(this.previousSibling,attr(\'id\)
    返回
    类型错误:this.previousSibling.attr不是函数
我假设没有正确到达兄弟节点,因为我期望的是某个元素或对象,而不是文本

下面是两个面包屑的HTML和javascript的外观:

<a id="n5_40_64_40" onclick="javascript:
    var tree=jQuery('#tree').dynatree('getTree');
    if (!tree.activateKey('40')) {
      var parent=0;
      if (1) {
       parent=this.previousSibling.id.split(/[_]+/).pop();
      }
    }
    return false;" href="">Apples</a>
>
<a id="n5_40_64_64" onclick="javascript:
    var tree=jQuery('#tree').dynatree('getTree');
    if (!tree.activateKey('64')) {
      var parent=0;
      if (2) {
       parent=this.previousSibling.id.split(/[_]+/).pop();
      }
    }
    return false;" href="">Green apples</a>

>

所有文本和空格,包括HTML标记之间的空格和新行,都算作a。因此,标记的上一个同级为实际文本
之间的空格节点,所有文本和空格,包括HTML标记之间的空格和新行,都算作a。因此,标记的上一个同级为实际文本

警报(this.previousSibling)
之间的空白节点返回
[对象文本]
” — 改为使用
控制台.log
警报
不是为调试而设的。你有一个
文本
节点。那些节点没有ID。你想要
这个吗。PreviousElement同级
?你打算在
这个之后加逗号吗。previousSibling
?非常感谢!我没有意识到
这个。PreviousElement同级
,我知道了这正是我所寻找的。有了它,代码就正确地设置了
父项
。现在,我不明白
这个.previousSibling
的目的。从这个例子中,我希望它指向一个HTML元素:
var x=document.getElementById(“item2”).previousSibling.innerHTML;
。我不想在
之后加逗号。previousSibling
split().pop()
用于检索单击的面包屑的id,因为在
id=“…”
我必须在其前面加上路径以获取HTML文档中唯一的ID。另请参阅skyline3000的答案,该答案对
此.previousSibling
检索的内容不言自明。“
警报(this.previousSibling)
返回
[对象文本]
” — 改为使用
控制台.log
警报
不是为调试而设的。你有一个
文本
节点。那些节点没有ID。你想要
这个吗。PreviousElement同级
?你打算在
这个之后加逗号吗。previousSibling
?非常感谢!我没有意识到
这个。PreviousElement同级
,我知道了这正是我所寻找的。有了它,代码就正确地设置了
父项
。现在,我不明白
这个.previousSibling
的目的。从这个例子中,我希望它指向一个HTML元素:
var x=document.getElementById(“item2”).previousSibling.innerHTML;
。我不想在
之后加逗号。previousSibling
split().pop()
用于检索单击的面包屑的id,因为在
id=“…”
我必须在其前面加上路径以获取HTML文档中唯一的ID。另请参阅skyline3000的答案,该答案对
这一点不言自明。previousSibling
正在检索的内容。您完全理解我想要的内容。感谢您回答的清晰,这也解释了
这一点。previousSibling
正在检索:空白。您完全理解我想要的内容。感谢您清晰的回答,这也解释了
这一点。以前的兄弟姐妹
正在检索:空白。