Javascript Jquery append不在函数外部工作

Javascript Jquery append不在函数外部工作,javascript,jquery,html,append,Javascript,Jquery,Html,Append,嗨,我只想将组ID添加到网页的开头,我正在尝试将其附加到div“test”中,然后添加一个空格-允许它从yammer API中提取数据,然后使用包含组ID的分隔符在组中循环。有人能告诉我为什么它会打印到回调中的网页,而不是在回调之外吗?谢谢:) var-page=1; var-groupIDs=[427165658962121188700]; var n=0; while(n

嗨,我只想将组ID添加到网页的开头,我正在尝试将其附加到div“test”中,然后添加一个空格-允许它从yammer API中提取数据,然后使用包含组ID的分隔符在组中循环。有人能告诉我为什么它会打印到回调中的网页,而不是在回调之外吗?谢谢:)


var-page=1;
var-groupIDs=[427165658962121188700];
var n=0;
while(n”);
getYammerJSON(第页);
函数getData(returnData){
$.each(returnData.users,函数(键,值){
如果(value.email!=未定义){
$('#test')。追加(value.email+“
”); } }); } 函数getYammerJSON(第页){ $.get(”https://www.yammer.com/api/v1/users/in_group/“+groupIDs[n]+”.json?page=“+page,function(returnData){ getData(returnData); 如果(!returnData.more_available===true){ 返回false; } 否则{ page++; getYammerJSON(第页); } }); } n++; } Yammer组ID中的用户电子邮件
因为您的脚本无法找到
$(“#测试”)
div。因为您没有为
文档设置任何
.ready()

因此,您需要将代码包装在doc ready块中:

$(function(){
   var page = 1;
   var groupIDs = [4271656,5896212,1188700];
   var n=0;

   while (n< groupIDs.length){

      $('#test').append("Group ID:" + "WHY WON'T YOU APPEND" + "<br/>");  

      getYammerJSON(page);

    function getData(returnData){
        $.each(returnData.users, function(key, value){
            if(value.email != undefined){
                $('#test').append(value.email + "<br/>");
            }
        });
    }

    function getYammerJSON(page){
        $.get("https://www.yammer.com/api/v1/users/in_group/" + groupIDs[n] + ".json?page=" + page, function(returnData) {
            getData(returnData);
            if(!returnData.more_available === true){
                return false;
            }
            else {
                page++;
                getYammerJSON(page);
            }
        });
    }
    n++;
    }
}); 

在页面底部编写脚本或将test div放在顶部。 在标记呈现之前,您正在运行js代码。。。它找不到div,因此不会追加任何内容

不应该是这样的

    <script>
$("#test").append("ghgh");
</script>

<div id = "test"> jj </div>
<div id = "test"> jj </div>
    <script>
$("#test").append("ghgh");

</script>
解决方案:

一,


$(函数(){
var-page=1;
var-groupIDs=[427165658962121188700];
var n=0;
while(n”);
getYammerJSON(第页);
函数getData(returnData){
$.each(returnData.users,函数(键,值){
如果(value.email!=未定义){
$('#test')。追加(value.email+“
”); } }); } 函数getYammerJSON(第页){ $.get(”https://www.yammer.com/api/v1/users/in_group/“+groupIDs[n]+”.json?page=“+page,function(returnData){ getData(returnData); 如果(!returnData.more_available===true){ 返回false; } 否则{ page++; getYammerJSON(第页); } }); } n++; } }); Yammer组ID中的用户电子邮件
因为脚本无法找到
$(“#test”)
div。为什么不呢?你知道我如何修复它吗?谢谢Jai,但是现在唯一的问题是它在执行脚本之前触发了append,所以我的输出是:Yammer Group IDsGroup ID中的用户电子邮件:为什么不追加Group ID:为什么不追加Group ID:为什么不追加,然后是电子邮件,我需要它在每个迭代之间分离n@Alibean您可以执行上述任一建议!他们都工作!好的,但是如果您注意到脚本$('#test').append(value.email+“
”);在它运行时发生,因此如果在整个脚本运行后追加,它只会将它们全部放在末尾,不管您希望追加到测试div的数据是什么,都将其保存在变量或对象中(如果是),然后将数据放在测试div中。这非常简单。
    <script>
$("#test").append("ghgh");
</script>

<div id = "test"> jj </div>
<div id = "test"> jj </div>
    <script>
$("#test").append("ghgh");

</script>
  <script>
for( condtion counter etc)
{
    str_var+= "your text";
 }   
    </script>
$("#test").text(str_var); or $("#test").val(str_var); or append