2013-10-31 181 views
1

所以我有一個腳本塊:HTML腳本變量賦值

<script> 
var totalPopulation = 0; 

for(xxxxx){ 
    totalPopulation = totalPopulation + xxx 
} 
</script> 


<tr> 
    <input type="text" name="censusPop" value=totalPopulation/> 
<tr> 

我還是挺綠的JavaScript。但有沒有辦法將腳本塊中的變量值賦給HTML元素,如輸入類型?我知道代碼無法訪問。

回答

1

希望這將有助於您瞭解

<html> 
<head> 
<script> 
    var totalPopulation = 0; 

    function addAndShowPopulation(population) { 
     totalPopulation = totalPopulation + population; 

     var input_tag = getTag('my_input_id'); 
     input_tag.value = totalPopulation; 
    } 

    function startAdding() { 
     addAndShowPopulation(10); 

     setTimeout(function(){startAdding();},1000); 
    } 

    function getTag(id) { 
     return document.getElementById(id); 
    } 

</script> 
</head> 
<body onload="startAdding();"> 

<div> 
    <input type="text" id="my_input_id" name="censusPop" value="" placeholder="Total Population"/> 

</div> 
</body> 
</html> 
0

是的,你只需要輸入一個id,例如「id = my_input_id」; 然後,在JavaScript中,只寫:

$("my_input_id").value=totalPopulation; 

這是如何工作的ajax:找到HTML元素的ID和dinamically使用javascript值填充它們。

只要小心,在閱讀JS前的html。如果不是,$( 「my_input_id」)將返回NULL

+0

如何JavaScript的工作需要的不僅僅是更多的JavaScript,jQuery的需要。 – dlp

+1

你不能在這樣的jQuery對象上應用一個值!嘗試'$(「my_input_id」)。val(totalPopulation);' – jukempff

0

更是這樣,你需要做這樣的事情:

<tr> 
<td> 
    <input type="text" id="censusPop" name="censusPop" value=""/> 
<td> 
<tr> 
<!-- Other stuff --> 
<script> 
var totalPopulation = 10; 
// or for loop, or whatever here. 
var censusText = document.getElementById('censusPop'); 
censusText.value = totalPopulation; 
</script> 
</body> 

HTML和JavaScript可以互動,但不能直接這樣。最好的辦法是使用<script>標籤來設置更新瀏覽器DOM的代碼。通過將<script>標籤放在HTML之後(通常位於<body>標籤的底部),您可以讓瀏覽器在實際嘗試使用它們之前創建元素。

另一注意:<tr>標籤應該包含<td>標籤,這是行和列之間的差異。

0

如果你需要做多個DOM操作,我建議使用jQuery是正確的方法。

<tr> 
    <input id="censusPop" type="text" name"censusPop" value=""/> 
</tr> 
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script> 
<script> 
    // make sure, the code is executed when the DOM is ready 
    $(function() { 
     // grab the input element by its ID 
     var $input = $('#censusPop'), 
      totalPopulation = 0; 
     // do your population calculations 
     totalPopulation = ....; 
     // assign the value to the input element 
     $input.val(totalPopulation); 
    }); 
</script>