Чтобы получить имя привязки из URL-адреса, используйте следующую строку:
var anchorName = document.location.hash.substring(1)
, которая получает хеш-часть URL-адреса, а затем обрезает первый символ (первый символ всегда будетсимвол хеша, "#").Вот некоторая документация по этому вопросу: Учебник по Javascript, Location.hash .Получив это, сделайте что-то вроде следующего:
jQuery("#area p:has(a[name=" + anchorName + "])").show();
Это покажет любой абзац в #area
, который содержит якорь с именем, указанным в хеш-части URL.
РЕДАКТИРОВАТЬ
Чтобы решить проблему быстрого jQuery, вы можете использовать более изумительный выбор, чтобы скрыть только те, которые в итоге будут скрыты, например:
$("#area > p:not(:first)").filter("p:not(:has(a[name=" + anchorName + "]))").hide();
Это означает, что нужно взять все абзацы, кроме первого, затем взять подмножество тех, которые не содержат привязку с заданным значением для атрибута name
, и скрыть все, что осталось.Первый абзац и любой, содержащий якорь с именем имени, останется видимым.
Вот демонстрационная версия: http://jsfiddle.net/JDQxP/
Поскольку мы не можем получить хеш из URLна jsFiddle я заменил эту строку статическими значениями.Раскомментируйте их по одному, чтобы увидеть эффект каждого из них.Обратите внимание, что якорь phasellus находится в оболочке, но селектор по-прежнему работает на нем правильно.