div元素未使用javascript更新

Tom*_*man 5 html javascript ajax jquery

谁能在下面的代码中看到为什么未更新div(#welcome)?

function show_logged_in(success)
{

    var is_logged_in = success;

    var dataString = {"reg":invalid, "login":invalid,"is_logged_in":is_logged_in};

    $.ajax({
        type:"POST",
        url:"PHP/class.ajax.php",
        data:dataString,
        dataType:'JSON',
        success: function(username) {
            alert("User is shown");
            user = username;
            change_div();
        },
        error: function() {
            alert("ERROR in show_logged_in")
        }
    });

function change_div(){
    $('#welcome').style.display = 'block';
    $('#welcome').innerHTML = "Welcome" + user + "to SIK";
    }

}
Run Code Online (Sandbox Code Playgroud)

来自ajax的响应只是从会话变量中获取用户名。并正确返回。

当它返回时,我希望div出现并表示欢迎。但是由于某些原因,div没有被更新。

这是html:

<div id="welcome" style="display:none; postion:absolute; top:0; float:right;">...</div>

Jef*_*ver 5

你做不到

$('#welcome').style.display = 'block';
$('#welcome').innerHTML = "Welcome" + user + "to SIK";
Run Code Online (Sandbox Code Playgroud)

与jQuery。这是因为$('#welcome')随身携带的是jQuery对象,而不是DOM元素。

为此,使用jQuery:

$('#welcome').html('Welcome' + user + 'to SIK').show(); // Brought up in comments

$('#welcome').show(); // Old
$('#welcome').html('Welcome' + user + 'to SIK'); // Old
Run Code Online (Sandbox Code Playgroud)

或者,如果您真的想获取DOM元素:

$('#welcome')[0].style.display = 'block';
$('#welcome')[0].innerHTML = "Welcome" + user + "to SIK";
Run Code Online (Sandbox Code Playgroud)