如何识别没有jquery或其他特殊id的html元素?

时间:2017-04-13 12:03:41

标签: javascript jquery html

我有一个填充了没有id的跨度的div,并且需要能够确定其中一个跨度是否被标记(突出显示)。我的方法一开始如下:

function isSelected(element){
  var selectedElement = window.getSelection().anchorNode.parentNode;
  if($(selectedElement).index() === $(element).index()){
    // It's selected
  }
}

但是,此解决方案不考虑选择具有相同索引的其他div中的其他元素的情况。

我尝试比较像这样的元素对象:

$(selectedElement).get() == $(element).get()

并且像这样:

$(selectedElement) == $(element)

但比较总是返回false。

如何确定它们是否相同而不给每个跨度一个id?

解决方案:

if(selectedElement.isEqualNode(element){
}

3 个答案:

答案 0 :(得分:1)

if(selectedElement.isEqualNode(element){
}

答案 1 :(得分:0)

此主题正在讨论与您的情况相关的主题Object comparison in JavaScript

也许他们的一条建议可以帮到你。不幸的是,Javascript不提供类似.ReferenceEquals()之类的内容,例如C#。

答案 2 :(得分:0)

尝试使用此代码:

if ($('div span .highlighted')){
  alert ('span is highlighted');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <div>
    <span class="highlighted"></span>
    <span class="normal"></span>
  </div>
</div>