Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过jquery或其他方式识别没有特殊id的html元素?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何通过jquery或其他方式识别没有特殊id的html元素?

Javascript 如何通过jquery或其他方式识别没有特殊id的html元素?,javascript,jquery,html,Javascript,Jquery,Html,我有一个div,其中填充了没有id的跨距,需要能够确定其中一个跨距是否标记为高亮显示。我最初的做法如下: function isSelected(element){ var selectedElement = window.getSelection().anchorNode.parentNode; if($(selectedElement).index() === $(element).index()){ // It's selected } } 但是这个解决方案不考虑从另

我有一个div,其中填充了没有id的跨距,需要能够确定其中一个跨距是否标记为高亮显示。我最初的做法如下:

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

但是这个解决方案不考虑从另一个DIV中选择具有相同索引的其他元素的情况。

我尝试比较元素对象,如下所示:

$(selectedElement).get() == $(element).get()
$(selectedElement) == $(element)
就像这样:

$(selectedElement).get() == $(element).get()
$(selectedElement) == $(element)
但这种比较结果总是错误的

我如何在不给每个跨度一个id的情况下确定它们是否相同

解决方案:


此线程正在讨论与您的情况相关的主题

也许他们的建议对你有帮助。不幸的是,Javascript没有提供与.ReferenceEquals类似的任何东西,例如C提供的。请尝试使用以下代码:

如果$'div span.突出显示'{ 警报“范围突出显示”; }
发布一些html PLS如果你的跨度一旦被选中就会得到一个“选中”的类,这将是非常简单的,因为你可以从div中选择所有拥有该类的子级。@Shilly我真的不喜欢在运行时重复将类分配给元素的想法。此外,使用window.getSelection.anchorNode.parentNode;只能有一个选定元素@XDreamCodeing html代码是用javascript生成的,看起来很凌乱,需要一段时间才能排序。您需要有多个选择吗?如果您只是试图在选择某个内容后运行某个代码,那么每次用户突出显示某个内容时都会触发selectionchange事件。然后,您可以从事件目标中引用文本highlithed及其div。对于您的类、id等,标记为Highlighted的是什么?这个问题与对象有什么关系?Ibos正在寻求一个解决方案,如何检查两个变量是否引用同一个对象,在他的例子中,这是一个DOM对象。你能举个例子说明如何解决这个选择问题吗?始终愿意学习,因为我认为深度对象比较在这里不起作用。感谢链接。如果我没有更好的答案,我会接受这个答案作为解决方案。我的意思是突出显示,就像在“过去时”中一样,鼠标光标按在文本上。你假设我在它发生之前知道什么是突出显示的,什么不是。但是如果我理解你:没有什么可以定义你想突出显示文本还是不想突出显示文本。您想如何区分?我通过从祖先到它们的遍历来获得需要检查的跨度。我也可以遍历回到祖先,然后再次比较祖先,但这将是不雅观的,而且可能很耗时。