传递变量 Javascript

Passing Variables Javascript

本文关键字:Javascript 变量      更新时间:2023-09-26

我正在尝试在javascript中传递一个变量。我以以下方式创建了一个链接,一切似乎都在工作。

label.innerHTML = '<a href="#" onclick="show_box(this);"> link</a>';

但是,当我以以下方式创建链接时,链接也会传递关联的对象,我从 firebug 收到以下错误 ->元素列表后"缺少]

label.innerHTML = '<a href="#" onclick="show_box(this,'+object+');"> link</a>';

这是将对象传递给函数的可接受方式吗?问题是我正在函数中创建此链接。该函数基于传递给它的对象创建这样的链接。因此,我不能将这个"对象"作为全局范围。

您是通过将字符串混合在一起来构建脚本的,因此您只能使用字符串,并且object将自动字符串化。

请改用 DOM。

var link = document.createElement('a');
link.href = "#"; // Have a more sensible fall back for status bar readers and middle clickers
link.appendChild(document.createTextNode(' link');
link.addEventListener('click',function () { show_box(this, object); },false);
label.appendChild(link);

。但是使用一个库来抽象出某些浏览器具有的非标准事件模型。

您要做的是将object的内容传递给输出。由于它是一个对象,字符串表示形式将类似于 [object Object] .输出 HTML 如下所示:

<a href="#" onClick="show_box(this, [object Object]);">link</a>

这是无效的。不要尝试连接对象,只需将其作为另一个参数传递给函数,例如 this 。或者,更好的是,使用jQuery:

<!-- somewhere in the head, or at least after the object is defined -->
<script type="text/javascript">
$(function() {
    $('#thelink').click(function() { show_box(this, object); });
});
</script>
...
<a href="#" id="thelink">link</a>

如果你的对象是简单的变量,如数字或字符串变量,那么它将是好的,但如果你传递html对象,它将不起作用,因为它将是如下所示的东西。

    <a href="#" onclick="show_box(this,[object HTMLDivElement]);"> link</a>