2009-09-12 4 views
1

Правильно ли это сделать?Изменение значения «id =» с document.getElementById

<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 = "тест", чтобы изменить ид = "NeXTStep", если запросов = 0.

+0

Какой браузер вы используете? –

+0

Какой тип doctype вы используете? –

+0

Safari 4, так как я тестировал и в других, и это не сработало? – Homework

ответ

4

Вы можете попробовать:

document.getElementById('test').setAttribute('id', 'nextstep'); 
+0

Это совсем не сработало. – Homework

+0

Не нужно использовать 'setAttribute' (если мы не говорим о XML DOM)' element.id = 'nextstep'' должно быть достаточно в этом случае. – kangax

1

Это именно то, как вы» d продолжайте делать это, пока вы завертываете его в теги скриптов ...

<script language="javascript" type="text/javascript"> 
if(requests === 0){ 
    document.getElementById('test').id = "nextstep"; 
} 
</script> 

Если вы пытаетесь ING, чтобы вызвать это на щелчок этот якорь, то вы будете использовать:

<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> 

EDIT: Ну вы изменили содержание вашего вопроса после того, как я отправил это ...

+0

Да, вы понимаете, что я пытаюсь сделать сейчас? haha – Homework

1

Вам нужно используйте 'setAttribute' для изменения идентификатора привязанного тега.

У вас есть элемент getElementById ('test') справа, но просто нажмите «.setAttribute (« id »,« nextstep »);

Надеюсь, что это поможет!

+0

Почему он не хочет работать? ха – Homework

1

если (self.href! = "#")

Там ваша проблема. Ссылка hrefs канонизируется браузером, поэтому ссылка '#' на странице 'http://www.example.com/' имеет атрибут href 'http://www.example.com/#' и не соответствует условию.

Избегайте использования имени «я», поскольку оно сталкивается с именем глобального объекта (он же «окно»). Вы можете избежать неуклюжего переходящая в из «я», назначив обработчик из JavaScript:

document.getElementById('load').onclick= request; 

вместо атрибута onclick, то вы можете использовать «это» в запросе(). request() также должен return false;, чтобы остановить отслеживаемую ссылку (чтобы браузер переместился вверх). Лучше все равно использовать <button> (или <input type="button">), потому что это кнопка действия, а не ссылка, которую вы можете открыть в новом окне или закладке. (Вы всегда можете использовать CSS, чтобы он выглядел меньше как кнопка.)

Не используйте setAttribute() для HTML, у него есть проблемы в IE, не связанные с этим использованием. Установка element.id была уже прекрасна.

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

Смежные вопросы