Javascript:setAttribute工作,getAttribute失败

时间:2013-11-13 17:34:31

标签: javascript href setattribute getattribute

我有这段代码:

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

这将正确显示对象的href属性中的URL。但是,当我尝试:

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

这失败了。代码在FF上不起作用,所以我只能在IE中测试它,没有Firebug = /。我也试过了。

object1.href = "someotherURL";

但它也失败了。 有谁知道为什么我不能修改属性?如果我需要提供更多信息,请告诉我。

问候。

更新: 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"));
}

1 个答案:

答案 0 :(得分:4)

使用document.getElementById并且工作正常:

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

在Firefox,IE和Chrome中测试过。

演示:http://jsfiddle.net/Guffa/zdrP9/