通过 JavaScript 设置锚标签的 innerHTML
Posted
技术标签:
【中文标题】通过 JavaScript 设置锚标签的 innerHTML【英文标题】:Setting the innerHTML of an anchor tag through JavaScript 【发布时间】:2012-03-29 18:18:32 【问题描述】:我在 ASP.NET 页面上有一个锚标记,我希望通过 javascript 使用从 Web 服务检索的整数填充其文本(内部 html)。
我使用以下方法进行了尝试:
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?
【问题讨论】:
看起来您正在将一个数组传递给 GetEntityCount 方法。我想 javascript 是这样解释的:我不是 javascript 专家。 【参考方案1】:因为你正在传递一个数组
[ domId: document.getElementById("entityCountIndicator")]
【讨论】:
啊,原来如此!非常感谢。【参考方案2】:你的代码不可能工作,因为:
您传递一个数组作为您的第一个参数 (GetEntityCount([ domId: document.getElementById("entityCountIndicator")]);),但接下来尝试从第二个元素 (domElement) 编写 innerHTML 为什么要将数组内的对象作为 domElement 传递,而不仅仅是像这样的元素:GetEntityCount(0,document.getElementById("entityCountIndicator")); 在这里您似乎只传递了一个 id,而不是一个 dom 元素: GotEntityCount($(xml).text(), domId);编辑:我想我回答的时间太长了,没关系。
【讨论】:
谢谢你的回答,大卫。我的错误是在没有真正理解它在做什么的情况下从其他地方“借用”一些代码。原来的代码传入一个数组,而我的代码不需要。以上是关于通过 JavaScript 设置锚标签的 innerHTML的主要内容,如果未能解决你的问题,请参考以下文章