0

問題は次のとおりです。body CheckCookie-onloadで実行される関数でLINKのinnerHTMLとhrefを動的に変更しようとしています。関数は次のとおりです。

function checkCookie()
{
    var username = getCookie("username");

    if (username != null && username != "")
    {       
        document.getElementById("firstlink").href = "http://localhost:8080/newLogIN/probalassfinalwithoutstyle.html";
        document.getElementById("firstlink").innerHTML = "Go to my lesson";       
    }
}

また、ドキュメントの準備ができたときに実行される別のjquery関数があります

function DropDown(el) {
    this.dd = el;
    this.initEvents();
}
DropDown.prototype = {
    initEvents: function() {
        var obj = this;

        obj.dd.on('click', function(event) {
            $(this).toggleClass('active');
            event.stopPropagation();
        });
    }
}


$(function() {

    var dd = new DropDown($('#dd'));

    $(document).click(function() {
        // all dropdowns
        $('.wrapper-dropdown-3').removeClass('active');
    });

});

私の体にはこれがあります

<body onload="CheckCookie()">
    <div id="dd" class="wrapper-dropdown-3">LoGG
        <ul class="dropdown">
            <li><a href="#" id="firstlink">Gismo Account</a> </li>

    </div>
</body>

すべてが思い通りに機能しますが、追加すると

document.getElementById("dd").innerHTML = "Hi," + getCookie("username");  

dd div の InnerHtML を変更すると、例外が発生します

SCRIPT5007: 未定義または null 参照のプロパティ 'href' を設定できません

4

1 に答える 1

2

実行すると、要素のコンテンツが完全document.getElementById("dd").innerHTML = "Hi," + getCookie("username");に置き換えられます。ddこれにはfirstlinkアンカーが含まれます。したがって、そのリンクを変更しようとすると、その ID を持つ要素がないため、そのエラーで失敗します。

于 2013-05-28T08:29:02.747 に答える