Изменение значения & # 8220; id = & # 8221; с document.getElementById
-
06-07-2019 - |
Вопрос
Это правильный способ сделать это?
<a id="load" href="#" class="btn load" onclick="request(this); $('#load').fadeOut(2000)">add</a>
<a href="#" id="test" onClick="alert( 'TEST!' )">here</a>
<script language="javascript">
var requests = 2;
function request(self)
{if(self.href != "#")
requests -= 1;
if(requests === 0)
document.getElementById("test").id= "nextstep";}
</script>
Я хочу id = " тест " изменить на id = " nextstep " если запросы = 0.
Решение
Вы можете попробовать:
document.getElementById('test').setAttribute('id', 'nextstep');
Другие советы
Именно так вы и поступите, если будете заключать его в теги скрипта ...
<script language="javascript" type="text/javascript">
if(requests === 0){
document.getElementById('test').id = "nextstep";
}
</script>
Если вы пытаетесь вызвать это по щелчку этого якоря, вы должны использовать:
<script language="javascript" type="text/javascript">
function changeID(){
if(requests === 0){
document.getElementById('test').id = "nextstep";
alert('TEST!');
}
}
</script>
<a href="#" id="test" onclick="changeID()">Test</a>
РЕДАКТИРОВАТЬ . Вы изменили содержание своего вопроса после того, как я опубликовал это ...
Вам нужно использовать setAttribute, чтобы изменить идентификатор тега привязки.
Вы правильно получили часть getElementById ('test'), но просто добавьте ".setAttribute ('id', 'nextstep'); "
Надеюсь, это поможет!
if (self.href! = " # ")
Это твоя проблема. Ссылки на ссылки канонизируются браузером, поэтому ссылка & # 8216; # & # 8217; на странице & # 8216; http://www.example.com/ & # 8217; имеет атрибут href & # 8216; http://www.example.com/# & # 8217; и не соответствует условию.
Избегайте использования имени & # 8216; self & # 8217 ;, поскольку оно конфликтует с именем глобального объекта (aka & # 8216; window & # 8217;). Вы можете избежать неуклюжего перехода к & # 8216; self & # 8217; назначив обработчик из JavaScript:
document.getElementById('load').onclick= request;
вместо атрибута onclick
, тогда вы можете использовать & # 8216; this & # 8217; в запросе (). request () также должен возвращать false;
, чтобы прекратить переход по ссылке (заставляя браузер прокручивать страницу вверх). Еще лучше было бы использовать < button >
(или < input type = " button " >
), потому что это кнопка действия, а не ссылка, которая Вы можете открыть в новом окне или в закладки. (Вы всегда можете использовать CSS, чтобы он не выглядел как кнопка.)
Не используйте setAttribute () для HTML, в IE есть проблемы, не связанные с этим использованием. Настройка element.id
уже была в порядке.
Но все это кажется довольно странным способом добиться того, что вы хотите сделать в любом случае.