Используя jQuery, чтобы найти элемент в определенной позиции?

Есть ли в jQuery метод для выбора элемента, расположенного в определенной позиции?

Например, я могу выбрать элемент, который расположен слева:100 и сверху:300 в абсолютном положении?

Было бы хорошо, если бы я мог выбрать элемент, расположенный в диапазоне позиций, например, выбрать элемент, который расположен слева: 100 - 150 пикселей сверху 200 - 280 пикселей.

2 ответа

Решение

Вы ищете .elementFromPoint() JavaScript/DOM метод.

var elem = document.elementFromPoint(100, 100) // x, y

Это возвращает DOM node, что, конечно, может быть обернуто в объект jQuery:

$(elem).remove(); // for instance

Я не очень осведомлен о кросс-браузерной совместимости, и мне хотелось бы, чтобы некоторые парни, которые знают лучше, отредактировали этот пост или написали комментарий об этом.

Ссылка: .elementFromPoint ()

Пример ссылки: http://www.jsfiddle.net/YjC6y/22/

При условии, что вы знаете точные координаты относительно документа:

function getElsAt(top, left){
    return $("body")
               .find("*")
               .filter(function() {
                           return $(this).offset().top == top 
                                    && $(this).offset().left == left;
               });
}

Другой ответ останавливается на первом наложении.

Другие вопросы по тегам