Вопрос

В 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);

  }

}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top