jquery 获取动态 span id 值

jquery get dynamic span id value

我在我的 web 项目中添加了 facebook SDK,我正在通过 id 打印所有值,但我有一个 doubt.How 通过 jquery 或 [=39= 获取动态 id 值].

我的代码

  FB.api('/me', function(response) {
    console.log('Successful login for: ' + response.name);      
    var fullname = document.getElementById('admin_name').innerHTML = response.name;
});

//通过html显示

<span id="admin_name"></span>打印成功

但是当我想通过 jquery 或 javascript 获取 id 值时,它会变为 null 或空。

//Jquery代码

$(document).ready(function () {
   var adminName = $("#admin_name").text();
   alert(adminName);
});

我用 Facebook 代码完成登录

function statusChangeCallback(response) 
{
   console.log(response);   
  if (response.status === 'connected') {
      testAPI();
  } 
}
function checkLoginState() {
   FB.getLoginStatus(function(response) {
   statusChangeCallback(response);
  });
}
window.fbAsyncInit = function() {FB.init({
 appId      : '12345678910',
 cookie     : true,  
 xfbml      : true,  
 version    : 'v2.2' 
});
FB.getLoginStatus(function(response) {
    statusChangeCallback(response);
  });
};
// Load the SDK asynchronously
(function(d, s, id) {
   var js, fjs = d.getElementsByTagName(s)[0];
   if (d.getElementById(id)) 
       return;
       js = d.createElement(s); 
       js.id = id;
       fjs.parentNode.insertBefore(js, fjs);
   }(document, 'script', 'facebook-jssdk'));
function testAPI() {
    FB.api('/me', function(response) {
      var fullname = document.getElementById('admin_name').innerHTML = response.name;
    });
}

并通过 FB 登录按钮调用

<fb:login-button max_rows="1" 
    size="large" 
    show_faces="false" 
    auto_logout_link="false"  
    onlogin="checkLoginState();">Login with Facebook
</fb:login-button>

你的问题是时间问题。 dom 将获取当前存在的值,而不是很快就会存在的值。在调用 $(document).ready 时,您的 FB.api 还没有。因此,它将return null。在 你的 FB.api 被调用后调用函数

以编程方式:

将您的 alert 代码粘贴到函数中

alertMe = function(){
    $(document).ready(function () {
       var adminName = $("#admin_name").text();
       alert(adminName);
    });
}

并在您的 FB API 完成其操作后调用该函数

FB.api('/me', function(response) {
    console.log('Successful login for: ' + response.name);      
    var fullname = document.getElementById('admin_name').innerHTML = response.name;
    alertMe(); //send the call for the alert
});