无法在AJAX函数中成功设置innerHTML或$(this).val

时间:2013-02-14 16:06:09

标签: javascript jquery html ajax

使用AJAX我已经检索了Json信息,但是在功能期间,我无法在相关的Div中显示文本。

代码正常工作,正如我可以看到的那样使用控制台,但即使我将占位符文本放在div“place”中,占位符文本仍然保持与函数末尾相同。

            $.each(data, function(i,item){
                if(i===0){
                    var placeHTML='<h2>'+item.name+'</h2>' +
                    '<p>where you can get <br>' +
                    'a pint of <em>'+item.pint+'</em> for only<br>' +
                    '<span>£'+item.cost+'!</span></p>';

                    window.localStorage.setItem("placeName", item.name);
                    window.localStorage.setItem("placeLoc1", item.location);
                    window.localStorage.setItem("placeLoc2", item.location2);
                    window.localStorage.setItem("placeEmail", item.email);
                    window.localStorage.setItem("placeNumber", item.number);

                    console.log("Data saved");

                    document.getElementById("place").innerHtml = placeHTML;

                    console.log("Data placed:");
                    console.log(placeHTML);

                    $("#loadText").fadeOut();
                    $('#place').fadeIn();

                    return false;
                }
            });

我还尝试将document.getElementById("place").innerHTML = foo替换为$("#place").val(foo)而没有运气。

div的值为id="place"class="place"

4 个答案:

答案 0 :(得分:4)

document.getElementById("place").innerHtml = placeHTML;

应该是

document.getElementById("place").innerHTML = placeHTML;

用jQuery做

$("#place").html(placeHTML)

val将设置输入字段之类的值,用jQuery改变内部HTML,你想使用html()函数

答案 1 :(得分:3)

试试这个:

$("#place").html(foo)

或者

$("#place").text(foo)

此外,它不是innerHtml,它应该是innerHTML

将其更改为:

document.getElementById("place").innerHTML = placeHTML;

答案 2 :(得分:1)

这一行错了,

document.getElementById("place").innerHtml = placeHTML;

innerHtml更改为innerHTML(HTML应为大写字母),

document.getElementById("place").innerHTML = placeHTML;

答案 3 :(得分:0)

可以尝试使用

$("#place").html(placeHTML);