我可以将 JS 对象或 JS 对象的引用传递给 HTML 标记中的函数吗?

发布于 2025-01-08 02:05:49 字数 636 浏览 0 评论 0原文

相当菜鸟的问题,我可能认为这个错误,但是...

有没有办法将 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 函数进行处理。

我是否以错误的方式思考这个问题?

Pretty noobish question, and I'm probably thinking about this wrong, but...

Is there a way to pass a javascript object (or a reference to it) to a javascript function within the HTML markup?

For example:

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

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

The markup ends up looking something like this when I inspect it:

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

Additional context:

The real use case is a search page in which I am querying SOLR via AJAX and get a result back as JS objects. When the user clicks on the HTML markup representing one of these search results, I want to be able to pass the object(or a reference to it) to a separate JS function for processing.

Am I thinking about this the wrong way?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

草莓味的萝莉 2025-01-15 02:05:49

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

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

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

function testThis(value) {
    console.log(value);
}

No, you can't embed a reference to an object into markup.

Instead you probably would like to setup your click event listening in Javascript/jQuery:

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

function testThis(value) {
    console.log(value);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文