我有一个填充了没有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){
}
答案 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>