【问题标题】:how to generate html with javascript method and object parameter如何使用javascript方法和对象参数生成html
【发布时间】:2014-06-22 01:28:19
【问题描述】:

我正在我的 javascript 中生成一个链接

例如。 <a href="#" onClick="openContactDetailPage('+JSON.stringify(contact)+')">'+ formattedName + '</a>

但是,引号没有在对象中转义,因此它实际上不起作用。

我原来的链接是:

<a href="#" onClick="openContactDetailPage('+contact+')">'+ formattedName + '</a><

这只是显示 [Object] 文本而不是实际对象。我觉得必须有一个简单的解决方案,我似乎找不到它。

更新:固定链接不那么通用

【问题讨论】:

  • object 应该是什么?您是否尝试在object 上执行方法?如果没有,methodName 应该做什么?
  • @mr rogers 我正在尝试将对象传递给方法methodName。该对象是具有姓名、ID 等的联系人。

标签: javascript html dynamic javascript-objects


【解决方案1】:

您可以执行以下操作:

$(document).ready(function(){
    var contacts = {one:'John', two: 'Anne'};  
    for (var prop in contacts) {
        var $anchor = $('<a href=""></a>').text(prop)
        .click(function(e){
            e.preventDefault();
            method({hi:'hi'});
        });
        $('#contacts').append($anchor).append('<br/>');
    }
});

function method(myObject){

    var $response = $('#response');

    for (var prop in myObject) {
        $response.append(prop).append('<br/>');
    }
}

查看jsfiddle

【讨论】:

  • 我在我的 javascript 中动态生成 href,因此当 DOM 加载时它不存在。它基本上是生成一个联系人列表,当用户单击一个时,我想通过将选定的联系人对象传递给渲染它的方法来加载该联系人的详细信息页面
【解决方案2】:
'<a href="#" onclick="methodName('+JSON.stringify(object)+');">Click here</a>'

正如您在 javascript 中所做的那样,它应该是字符串。所以你可以这样做。

试试这个Fiddle

【讨论】:

  • 对不起,这实际上是我所拥有的,我更新了我的问题(漫长的一天)。问题是 stringify 没有转义字符,所以当您看到生成的链接时,它看起来像这样:onclick="methodName({"id":"001",.. 并抱怨{ 字符无效。
猜你喜欢
  • 2019-06-15
  • 2016-07-09
  • 1970-01-01
  • 1970-01-01
  • 2014-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多