использование javascript для получения элемента

#javascript

#javascript

Вопрос:

 <li class="even">
<a href="www.google.com">Click here </a>
</li>
  

Я хочу изменить текст тега привязки «Нажмите здесь», используя javascript. Как я могу этого добиться?

Комментарии:

1. Нет JQuery…so какие браузеры вы хотите поддерживать?

2. вы хотите сделать это непосредственно при загрузке страницы? или когда на него нажимают или что-то в этом роде

Ответ №1:

Если вы не ограничены использованием именно такой разметки и вы действительно ищете один из лучших способов сделать это, начните с присвоения уникального идентификатора элементу, который вы собираетесь изменить:

 <a href="www.google.com" id="mylink">Click here</a>
  

document.getElementById("mylink") предоставит вам этот элемент.

Прежде чем манипулировать элементом на странице, вам необходимо убедиться, что документ загружен и готов к манипулированию. Избегайте использования встроенного JavaScript в атрибутах. Используйте следующий метод, чтобы прикрепить обработчик загрузки документа:

 window.onload = function () {
    // manipulate the document here
};
  

Итак, то, что вы ищете, было бы:

 window.onload = function () {
    document.getElementById("mylink").innerHTML = "Something Else";
};
  

Но, если вы действительно ищете лучшее решение, не стесняйтесь обращаться к jQuery:

 $(function () {
    $("#mylink").html("Something Else");
});
  

Комментарии:

1. Я бы также отметил, что перезаписывать window.onload следует только в том случае, если вы единственный, кто работает на этой веб-странице. Выигрывает тот, кто сделает это последним. Все остальные работы отображаться не будут. На этом сайте есть примеры того, как обойти это. Вам просто нужно выполнить поиск.

2. @John: Хорошо сказано. Еще одна причина использовать jQuery, который автоматически обрабатывает эту проблему за вас.

Ответ №2:

 document.getElementsByTagName("a")[0].innerHTML = "Changed click here"; //0 is assuming this is your only link
  

Было бы лучше использовать идентификатор для доступа к этой конкретной ссылке.

РЕДАКТИРОВАТЬ: Я заметил, что вы хотите, чтобы это происходило при загрузке страницы:

 <body onload="document.getElementsbyTagName('a')[0].innerHTML = 'Changed text';">
  

Или вы могли бы поместить этот код куда-нибудь в функцию и вызвать функцию вместо этого.

Ответ №3:

 <body onload="document.getElementById('mylink').innerHTML='new text';">
    <li class="even">
        <a id='mylink' href="www.google.com">Click here </a>
    </li>
</body>