2012-03-13 28 views
1

設置錨標記的innerHTML我有一個ASP.NET頁,其文本(HTML內),我想填充,通過JavaScript,從Web服務檢索的整數一個錨標記。通過JavaScript

這個我試過使用下列內容:

HTML:

<script type="text/javascript"> 
    $(function() { 
     GetEntityCount([{ domId: document.getElementById("entityCountIndicator")}]); 
    }); 
</script> 

<a id="entityCountIndicator"></a> 

的JavaScript:

function GetEntityCount(domId) { 
    $.ajax({ 
     type: 'POST', 
     url: webServiceProxy + '/GetEntityCount', 
     cache: true, 
     success: function (xml) { GotEntityCount($(xml).text(), domId); } 
    }); 
} 

function GotEntityCount(entityCount, domElement) { 
    if (isNaN(entityCount)) return; 
    domElement.innerHTML = entityCount.toString(); 
} 

,但沒有奏效。

檢查在Firebug的變量,並做了一些實驗後,我設法得到它的工作通過更改設置innerHTML來行:

domElement[0].domId.innerHTML = entityCount.toString(); 

這似乎這樣的伎倆,但我有不知道爲什麼它在工作或發生在這裏。

爲什麼的document.getElementById(「entityCountIndicator」)調用返回顯然的陣列,而不是一個單一的元素?然後,爲什麼我必須探測該數組的第一個元素,並在其domId屬性上設置innerHTML?

+0

它看起來像你傳遞一個數組到GetEntityCount方法。我想JavaScript解釋爲:我不是JavaScript專家。 – Kell 2012-03-13 10:47:25

回答

4

因爲你正在傳遞的陣列

[{ domId: document.getElementById("entityCountIndicator")}] 
+1

啊,我是!非常感謝。 – 2012-03-13 10:47:50

1

您的代碼不可能工作,因爲:

  • 你傳遞數組作爲第一個參數(GetEntityCount([{domId:文件.getElementById(「entityCountIndicator」)}]);),但接下來嘗試從第二個元素(domElement)寫入innerHTML
  • 爲什麼要傳遞一個數組作爲你的DOM元素而不是像這樣的元素:GetEntityCount( 0,的document.getElementById( 「entityCountIndicator」));
  • 在這裏你似乎只通過一個ID,而不是一個DOM元素:GotEntityCount($(XML)的.text(),domId);

編輯:我想我花了太長時間來回答,請不要介意在這種情況下。

+0

無論如何,謝謝你的答案,大衛。我的錯誤是在沒有真正理解它在做什麼的情況下從其他地方「借用」一些代碼。數組中傳遞的原始代碼,但我的代碼不需要。 – 2012-03-13 10:53:02