【问题标题】:Can I Pass a JS Object or Reference to a JS Object to a Function in the HTML Markup?我可以将 JS 对象或对 JS 对象的引用传递给 HTML 标记中的函数吗?
【发布时间】:2012-03-13 00:22:25
【问题描述】:

相当愚蠢的问题,我可能想错了,但是......

有没有办法将 javascript 对象(或对它的引用)传递给 HTML 标记中的 javascript 函数?

例如:

<script type="text/javascript">
    var myObject = new Object();
    $('body').append('<div onclick=testThis(' + myObject + ')></div>');

    function testThis(object)
    {
        console.log(object);
    }
</script>

当我检查它时,标记最终看起来像这样:

<div onclick="testThis([object Object])"> 

附加上下文:

真正的用例是一个搜索页面,我在其中通过 AJAX 查询 SOLR 并将结果作为 JS 对象返回。当用户单击代表这些搜索结果之一的 HTML 标记时,我希望能够将对象(或对它的引用)传递给单独的 JS 函数进行处理。

我是不是想错了?

【问题讨论】:

    标签: javascript html parameter-passing pass-by-reference


    【解决方案1】:

    不,您不能将对对象的引用嵌入到标记中。

    相反,您可能希望在 Javascript/jQuery 中设置您的点击事件监听:

    var object = new Object();
    $('<div/>').appendTo('body').click(function() {
        testThis(object);
    });
    
    function testThis(value) {
        console.log(value);
    }
    

    【讨论】:

    • 谢谢。我在考虑这个错误的方式,因为我之前遇到过 JQuery 没有注册点击事件监听 $(document).ready() 不存在的元素的问题。
    猜你喜欢
    • 1970-01-01
    • 2015-11-23
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多