как сгенерировать html с помощью метода javascript и параметра объекта

#javascript #html #dynamic #javascript-objects

#javascript #HTML #динамический #javascript-объекты

Вопрос:

Я создаю ссылку в своем javascript

пример. <a href="#" onClick="openContactDetailPage(' JSON.stringify(contact) ')">' formattedName '</a>

Однако кавычки не экранируются в объекте, поэтому на самом деле это не работает.

Исходная ссылка, которая у меня была, была :

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

Это просто показывает текст [Object], а не фактический объект. Я чувствую, что для этого должно быть простое решение, я просто не могу его найти.

ОБНОВЛЕНИЕ: исправлены ссылки, которые должны быть менее общими

Комментарии:

1. что object должно быть? Вы пытаетесь выполнить метод на object ? если нет, то что methodName же нужно делать?

2. @mr. rogers Я пытаюсь передать объект методу methodName. Объект — это Контакт с именем, идентификатором и т.д.

Ответ №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

Комментарии:

1. Я генерирую href в моем javascript динамически, поэтому его нет при загрузке DOM. В основном он генерирует список контактов, и когда пользователь нажимает на один, я хочу загрузить страницу сведений для этого контакта, передав выбранный объект контакта методу для его отображения

Ответ №2:

 '<a href="#" onclick="methodName(' JSON.stringify(object) ');">Click here</a>'
 

Как вы делаете в javascript, это должна быть строка. Итак, вы можете сделать так.

Попробуйте эту скрипку

Комментарии:

1. Извините, это на самом деле то, что у меня есть, я обновил свой вопрос (долгий день). Проблема в том, что stringify не экранирует символы, поэтому, когда вы видите ссылку, которая генерируется, она выглядит так: onclick="methodName({"id":"001",.. и жалуется на недопустимый { символ.