2013-11-13 15 views
1

У меня есть этот код:Javascript: SetAttribute работы, GetAttribute терпит неудачу

var object1 = getElementByID('obj1'); 
alert(object1.getAttribute('href')); 

Это правильно отображает URL в HREF атрибута объекта. Но, когда я пытаюсь:

var object1 = getElementByID('obj1'); 
object1.setAttribute('href','someotherURL'); 
alert(object1.getAttribute('href')); 

Это не удается. Код не работает на FF, поэтому я могу проверить его только в IE, нет Firebug = /. Я тоже пробовал.

object1.href = "someotherURL"; 

, но это также не удается. Кто-нибудь знает, почему я не могу изменить атрибут? сообщите мне, если мне нужно предоставить дополнительную информацию.

С уважением.

UPDATE: HTML:

<table class="msrs-topBreadcrumb" cellpadding="0" cellspacing="0" border="0" width="100%"> 
    <tr> 
     <td> 
      <span> 
       <div> 
        <a href="SomeURL">A Name</a> &gt; 
        <a href="AnotherURL">A Name2</a> &gt; 
        <a href="Third URL">A Name3</a> 
       </div> 
      </span> 
     </td> 
     <td align="right"> 
      <span> 
       <a href="URL1">A Name</a>&nbsp;| 
       <a href="URL2">A Name2</a>&nbsp;| 
       <a href="URL3">A Name3</a>&nbsp;| 
       <a href="URL4">A Name4</a> 
      </span> 
     </td> 
    </tr> 
</table> 

ФУНКЦИЯ:

function mySubscriptions() 
{ 
    var mySubsObj = getElementsByClass('msrs-topBreadcrumb')[0].firstChild.childNodes[0].childNodes[1].childNodes[0].childNodes[2]; 
    alert(mySubsObj.getAttribute("href")); 
} 
+0

Было бы помочь знать, что HTML элемент участвует! – Pointy

+3

Это 'getElementById' не' getElementByID'. – j08691

+0

Также вам не нужны 'setAttribute()' и 'getAttribute()' для доступа или модификации таких свойств, как «href». – Pointy

ответ

4

Использование document.getElementById и она отлично работает:

var object1 = document.getElementById('obj1'); 
object1.setAttribute('href','someotherURL'); 
alert(object1.getAttribute('href')); 

Испытано в Firefox, IE и Chrome.

Демо: http://jsfiddle.net/Guffa/zdrP9/

+1

Я согласен с тем, что код ошибочен, но несколько странно, что OP получил предупреждение, которое его удовлетворило. – Pointy