jQuery添加id到一个元素,被附加到主体
jQuery add id to an element that is being appended to the body
我有以下功能:
simpleModal: function (data, id) {
var responseHtml = data;
// Append the modal HTML to the DOM
var modalInstance = $('body').append(modalHtml);
$(modalInstance).attr('id', id);
$(id).find('.uiModalContent').width(480);
$(id).find('.uiModalContent').height(320);
// Hide the modal straight away, center it, and then fade it in
$(id).find('.uiModal').hide().center().fadeIn();
// Dynamically load in the passed data from the call
$(id).find('.uiModalContent').html($(responseHtml));
$(id).find('.uiModalContent').removeClass('loading');
$(id).find('.ModalClose').live('click', function (e) {
e.preventDefault();
$(this).parents('.uiModal').fadeOut(function () { $(this).parents('.uiModalWrapper').remove() });
});
},
uiModal.simpleModal('<p>An error has occured</p>','TestError');
应该把传递的内容附加到主体的模态,并给modalHtml一个也传递的id。但是,将id附加到body而不是html会让人感到困惑。我该怎么解决这个问题?由于
这是因为append
方法返回要添加的元素,而不是要添加的元素。
相反,您可以使用appendTo
方法,并按如下方式使用它;
var modalInstance = $(modalHtml).appendTo('body');
您还需要使用$('#' + id)
作为ID选择器,而不是$(id)
;否则,您将最终查找标签名称为TestError
的所有元素。
另外,你应该认真考虑缓存$('#' + id)
的结果;你执行了6次相同的DOM查找操作;这是完全不必要的,因为你有完全相同的jQuery对象缓存在var modalInstance
;将$('#' + id)
的所有实例替换为modalInstance
这一点也适用于$(id).find('.uiModalContent')
;缓存!
var uiModelContent = modelInstance.find('.uiModalContent');
uiModelContent.height(320);
uiModelContent.width(480);
uiModelContent.html($(responseHtml));
uiModelContent.removeClass('loading');
虽然你也可以为相同的结果链接你的方法;
modelInstance.find('.uiModalContent').height(320).width(480).html($(responseHtml)).removeClass('loading');
相关文章:
- 使用clickToggle并在单击另一个元素时关闭元素
- 表追加而不附加最后一个元素
- 滚动到容器中的下一个元素-几乎到了
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- 按我自己的类克隆另一个元素的内容和顺序
- Javascript获取上一个元素的内容
- 如何通过HTML+CSS中的另一个元素Selector更改元素的属性值
- 在数组中的一个元素上设置多个值
- 指令的模板必须只有一个根元素:With restrict E&替换true
- HTML JavaScript,我如何能够通过给每个元素一个不同的Id来使用JavaScript使这个函数工作
- 如何创建一个独立的 DOM 元素?一个不从父母那里继承 css 等
- 如何给图像元素一个“;选择“;使用Raphael.js查看
- 如何显示隐藏的
- 元素一个接一个或全部同时
- 使用"span"创建一个自定义的基于web的文本编辑器;元素——一个坏主意
- 引导旋转木马传递元素一个接一个
- 给所有元素一个匹配数组内容的ID
- 我如何得到Json数组元素一个接一个的jquery上不同的id'
- 一次淡入附加元素一个
- 如何使用AngularJS检索外部网站的内容(一个元素一个元素)