Найдите achor в Div с помощью javascript
-
05-07-2019 - |
Вопрос
В javascript у меня есть ссылка на div.В этом div - это элемент привязки с именем='Основополагающий элемент'
Как мне получить ссылку на якорь с именем Основополагающий элемент что находится в Div, на который у меня есть ссылка?
Их "много" Основополагающий элемент привязки к другим разделам на странице.Мне нужен "этот" DIVs one.
Решение
Используя jquery, это чертовски просто:
<script type="text/javascript">
$(function(){
var item = $("#yourDivId a[name=foundItem]")
)};
</script>
Обновить:
Согласно комментариям, если у вас есть контроль над тем, как идентифицировать / назвать / классифицировать ваши привязанные теги, было бы лучше применить к ним класс:
<div id="firstDiv">
<a href="someurl.htm" class="foundItem">test</a>
</div>
<div id="secondDiv">
<a href="someOtherUrl.htm" class="foundItem">test another one</a>
</div>
<!-- and so forth -->
<script type="text/javascript">
$(function(){
var item = $("#firstDiv a.foundItem");
alert(item.html()); // Will result in "test"
var item2 = $("#secondDiv a.foundItem");
alert(item2.html()); // Will show "test another one"
)};
</script>
Если вы делаете что-либо с javascript, jQuery экономит вам массу времени и стоит того, чтобы вложить усилия в хорошее обучение.Начните с http://api.jquery.com/browser/ чтобы получить представление о том, что возможно.
Другие советы
// assuming you're not using jquery or mootools
// assume div is mydiv
var lst = mydiv.getElementsByTagName('a');
var myanchor;
for(var i=0; i<lst.length; ++i) {
if(lst[i].name && lst[i].name == 'foundItem') {
myanchor = lst[i];
break;
}
}
// the mootools method
var myanchor = $(mydiv).getElement('a[name=foundItem]');
Используйте библиотеку JavaScript, например jQuery , и экономьте свое время.
var theAnchor = $('#divId a[name=foundItem]');
Вы можете использовать метод getElementsByTagName, чтобы получить элементы привязки в div, а затем найти элемент с правильным атрибутом name:
var found = null;
var e = divReference.getElementsByTagName('A');
for (var i=0; i < e.length; i++) {
if (e[i].name && e[i].name == 'foundItem') {
found = e[i];
break;
}
}
Если found
не равно NULL, вы получили элемент.
Если вы используете библиотеку jQuery, вы можете позволить ей выполнить поиск:
var found = null;
var e = $(divReference).find('a[name=foundItem]');
if (e.length == 1) found = e.get(0);
Не уверен, поможет ли это, но хотел, чтобы функция динамически обрабатывала загрузку страницы и прокручивала до нужного якоря.
function scrollToAnchor(anchor_val) {
alert("" + anchor_val);
var page = document.getElementById('tables');
var found = null;
var cnt = 0;
var e = document.getElementsByTagName('a');
for (var i = 0; i < e.length; i++) {
if (e[i].name && e[i].name == anchor_val) {
found = e[i];
break;
}
cnt++;
}
if (found) {
var nPos = found.offsetTop;
alert("" + nPos);
page.scrollBy(0, nPos);
} else {
alert('Failed with call of scrollToAnchor()' + cnt);
}
}