Вопрос

Это правильный способ сделать это?

<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 уже была в порядке.

Но все это кажется довольно странным способом добиться того, что вы хотите сделать в любом случае.

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