【发布时间】:2017-11-23 08:17:41
【问题描述】:
我正在尝试使用 Ajax 从 URL 获取 JSON 数据以制作动态联系人表,并在用户单击表上的姓名时使用引导模式显示带有特定联系人信息的卡片。我让每个联系人模态都有自己的模态块,并希望使用不同的 id 来识别和填充每个模态 div 的正确数据,但是当我想将 id 属性添加到特定 div 时,我发现 id 没有t 用下面的代码添加。找不到问题出在哪里,特来求救。
var modal_elements = $(modalTemplate);
var contactModalid = "myModal" + i.toString();
modal_elements.find("#myModal0").attr("id", contactModalid);
modal_elements.find("#name").text(contact.name);
modalContainer.append(modal_elements);
以下是我在 HTML 头中的整个脚本块,以便更好地了解我的整个情况。
$(document).ready(function () {
var contactTemplate =
"<tr><td class=\"contactID\">contact's id goes here</td>" +
"<td><a data-toggle=\"modal\" class=\"contactName\">contact's name goes here</a></td></tr>";
var modalTemplate =
"<div class=\"modal fade\" id=\"myModal0\" role=\"dialog\">" +
"<div class=\"modal-dialog\">" +
"<div class=\"modal-content\">" +
"<div class=\"modal-body\" style=\"padding:80px 50px; background-color:DodgerBlue; color: white\">" +
"<h2 id=\"name\" style=\"text-align: right\"></h2>" +
"<p id=\"title\" style=\"text-align: right\">Web Designer</p></div>" +
"<div class=\"modal-footer\" style=\"background-color:black; color: white\">" +
"<p id=\"phone_email\">222.222.2222 | info@business.com</p><p id=\"address\">1812 Rafe Lane, Jackson, MS 39211</p></div></div></div></div>";
$.ajax({
url: 'http://jsonplaceholder.typicode.com/users',
type: 'GET',
success: function (msg) {
var container = $("tbody");
var modalContainer = $("#cardModal");
for (var i = 0; i < msg.length; i++) {
var contact = msg[i];
var contact_elements = $(contactTemplate);
contact_elements.find(".contactID").text(contact.id);
contact_elements.find(".contactName").text(contact.name);
contact_elements.find("a").attr("id", i.toString());
var herfValue = "#myModal" + i.toString();
contact_elements.find("a").attr("href", herfValue);
container.append(contact_elements);
var modal_elements = $(modalTemplate);
var contactModalid = "myModal" + i.toString();
modal_elements.find("#myModal0").attr("id", contactModalid);
modal_elements.find("#name").text(contact.name);
modalContainer.append(modal_elements);
};
}
});
});
【问题讨论】:
-
modal_elements.find("#myModal0")没有意义,因为$("#myModal0")就足够了。#表示您选择了一个 id。如果它是一个类,你可以做modal_elements.find(".myModal0") -
在我们使用
append()到目标<div>之前,所有的HTML 元素仍然在modal_elements中,所以我必须使用find()为modal_elements来定位id,你可以不要只使用$("#myModal0")
标签: javascript jquery ajax html bootstrap-modal