JavaScript或JQuery:获取位置的最内层元素

时间:2014-11-18 16:16:02

标签: javascript jquery html

我想把最里面的元素放在某个光标位置,即:

<div>
  <div>
    <span>Text</span>
  </div>
</div>

如果我将鼠标光标指向文本,我想要检索span标记,而不是最外面的div,这是JavaScript elementFromPoint(x,y)的默认值。< / p>

(如果有任何帮助:我想在JQuery keydown事件处理程序中检索元素)

3 个答案:

答案 0 :(得分:1)

keydown事件未提供.pageX.pageY等属性,因此您无法在document.elementFromPoint()上应用这些值。 您需要在windowdocument.body上设置一个事件监听器,并将event data信息提供给更公开的上下文,以便您可以在keydown处理程序中访问该数据。

演示:http://jsfiddle.net/1ztf2p9b/

答案 1 :(得分:1)

你可以这样做:

$('div').hover(function(element){
   element.find('span').dosomestuff();
});

我希望它有所帮助。

答案 2 :(得分:0)

演示:http://jsfiddle.net/mspocq9h/1/

var hoverEleme = null;

$('*').hover(function(){ 
    hoverEleme = $(this); 
});

$(window).on('keydown', function( e ) {
    // Get hoverEleme here
    $('span').css('color', 'black');
    $(hoverEleme).closest('span').css('color','red');
});

使用jQuery&#39; .closest()调用遍历元素的祖先,找到与选择器匹配的第一个元素,在这种情况下是最接近的span

此处没有按下按键的过滤器,它只是将颜色设置为红色,这样您就可以看到它找到了您正在寻找的那个。