#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",..
и жалуется на недопустимый{
символ.