2014-05-15 35 views
0

我缺少什麼?我已經通過Id添加了get元素,並且我肯定會收到回覆,我使用螢火蟲進行了檢查,並且回覆是正確的。但我不明白爲什麼它不會填充我的div區域。將ajax響應填充到div中問題

<script> 
$(document).ready(function() { 
    $("#cmdSend").click(function() { 
     // Get he content from the input box 
     var mydata = document.getElementById("cmdInput").value; 
     $.ajax({ 
      type: "POST", 
      url: "/Terminal/processCommand", 
      data: { cmd: mydata }, // pass the data to the method in the Terminal Contoller 
      success: function (data) { 
       //alert(data); 
       // we need to update the elements on the page 
       document.getElementById("terminal").value = document.getElementById("terminal").value + mydata; 
       document.getElementById("terminal").value = document.getElementById("terminal").value + data; 
      }, 
      error: function (e) { alert(e); } 
     }) 
    }); 
}); 
</script> 

而且股利我想放的響應中:

<div class="terminal" style="overflow:scroll"> 
<br> 
</div> 
+0

您正在使用getElementById而不是按類選擇。你已經在使用JQuery,所以你可以通過執行'$('。terminal')。html('SomeData');' –

+0

將結果放到終端div中,如果你將id =「terminal」添加到它可能工作的div太大聲笑 –

+0

是的...加入ID將工作 – dolly

回答

1

首先,您正在調用document.getElementById(),但您的div沒有終端的ID,它有一個名爲terminal的類。

其次,您正在使用jQuery,但切換回經典的JavaScript。你可以更新您的代碼如下:

success: function (data) { 
    //alert(data); 
    // we need to update the elements on the page 
    var existingHtml = $(".terminal").html(); 
    $(".terminal").html(existingHtml + mydata + data); 
} 

注意,$(".SomeName")選擇是選擇由類$("#SomeName")是ID選擇。

編輯和注意

如果這個終端DIV可以開始得到了很多這裏面的數據,你可以查看使用.append()功能jQuery來防止不得不使HTML的副本,每次發出請求時都會覆蓋HTML。此更新將類似於以下(其短一點,應該更有效的爲好)

success: function (data) { 
    //alert(data); 
    // we need to update the elements on the pag 
    $(".terminal").append(mydata + data); 
} 
+0

工作就像一個魅力的聲音! – ValMangul

+0

@ValMangul - 真棒,看看我的編輯,我認爲這將是一個更有效的方法來做你想做的事情。 – Tommy

+0

只是想知道因爲會有很多文本在這個div長時間使用後有沒有像添加一個focusable()類型的東西的方式,以便隨着信息被追加它看起來在新的文字 – ValMangul

0

如果您想通過ID來獲得你的元素中,添加一個id到div:

<div id=terminal class="terminal" style="overflow:scroll"> 
<br> 
</div> 
0

如果你想改變不使用jquery div的抗衡,你應該使用,而不是價值innerHTML的東西。

document.getElementById("divID").innerHTML = document.getElementById("divID").innerHTML + data