2012-02-17 27 views
3

我可以使用ajax輕鬆設置div標籤。不過,我想用ajax設置javascript值。我曾嘗試使用javaScriptVariable = div.innerHTML閱讀div標籤,但它出現空白。使用div標籤設置javascript值的Ajax

任何人都可以請幫忙嗎?提前致謝。

<html> 
<head> 
<title>Log In</title> 

<!-- script tag for ajax jquery --> 
<link href='style.css' type="text/css" rel="stylesheet"/> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.js" type="text/javascript"></script> 

<script type="text/javascript"> 

$(document).ready(function() 

       { 
       //Get Data ajax function 
       $.post(
        'getData.php', 
        { 

        },           
        function(response) 
        { 
        $('#name').html($('#1' , response).html()); 
        $('#sname').html($('#2' , response).html());           
        }) 
       return false; 
       }) 

var x; 
x = name.innerHTML; 
document.write(x); 

</script> 

</head> 

<body> 

+2

什麼是'name'? – SLaks 2012-02-17 18:12:25

+0

您似乎沒有名爲'#name'和'#sname'的元素。請記住,Ajax是異步的。 – 2012-02-17 18:15:14

回答

1

如果沒有值傳遞給jQuery的HTML()方法,它會返回當前值:

var x = $('#name').html(); 
document.write(x); 
+0

這涵蓋了其他HTML元素。它可以工作,但是其他所有HMTL元素都被掩蓋了。你能幫助阻止嗎? – user1216855 2012-02-18 22:17:06

+0

在你的例子中,你在head標籤中使用了document.write,這可能會導致各種問題。如果它在你的身體中,那麼這是一個CSS問題,而不是JS問題。 – 2012-02-21 17:13:19

1

也就是說因爲這兩行在腳本加載後立即執行。我假設這個元素現在可能是空的。

x = name.innerHTML; 
document.write(x); 

當ajax調用返回時,您需要設置x

$(document).ready(function() 
{ 
    //Get Data ajax function 
    $.post(
     'getData.php', 
     { 

     },           
     function(response) 
     { 
      $('#name').html($('#1' , response).html()); 
      $('#sname').html($('#2' , response).html()); 

      var x = $('#name').html(); 
      document.write(x); 
     }) 
    return false; 
}); 
+0

非常感謝你!我花了一天的時間在這哈哈 – user1216855 2012-02-17 18:37:19

+0

這涵蓋了其他的HTML元素。它可以工作,但是其他所有HMTL元素都被掩蓋了。你能幫助阻止嗎? – user1216855 2012-02-18 22:16:45

1

你有一個問題,因爲你沒有一個變量name定義的任何地方做。

爲什麼還要穿過div呢?直接去var:

var x; 
// ... 

       function(response) 
       { 
       $('#name').html($('#1' , response).html()); 
       $('#sname').html($('#2' , response).html()); 
       //this will set x, you can do this instead of, or in addition to the above 
       x = $('#1' , response).html(); 
       })