javascript - div 元素不使用 javascript 更新

标签 javascript jquery html ajax

你们能看出为什么 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";
    }

}

调用的 ajax 的响应只是从 session 变量中获取用户名。并且它正在正确返回。

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

这是 html:

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

最佳答案

你做不到

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

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

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

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

关于javascript - div 元素不使用 javascript 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15522874/

相关文章:

html - 在 HTML 中使用文件路径作为超链接

javascript - 关闭 Galleria 中的缩放功能

javascript - 单击另一个选择框选项时,如何更改带有复选框中选项的选择框中的值

javascript - jQuery 如何允许您在 jQuery 对象上使用 []?

javascript - 如何让所有超链接在点击时变色?

android - HTML5 录音在 Google Nexus 中不起作用

javascript - jQuery 从列中隐藏的输入中获取值

javascript - Jquery 标签删除导致换行?

javascript - html 下拉列表重置后使用 jquery 选择默认值

php - 如何让 PHP 将我的其他页面正确打印到 iframe 中?