我正在尝试使用jQuery和WordPress将链接动态地注入到表单中。该表单位于WordPress帖子中,我使用$.load('url').dialog()
进行显示。这很好。
我希望添加一个实时计算的链接。对于要修改的元素,我有一个特殊的id,但是append()
,appendTo()
和replaceWith()
的结果都是单个元素,而不是整个表单都嵌入了内部修改。 / p>
最好将计算值设置为一个输入字段。
jQuery('<div />').load(url).find("#my-special-id").append('<a href="' + order + '">link to your order</a>')
答案 0 :(得分:1)
问题是因为load()
是异步的,所以您试图在DOM中存在#my-special-id
元素之前就找到它。
要解决此问题,请在AJAX请求完成后,使用load()
的回调函数来执行逻辑
jQuery(function($) {
$('<div />').load(url, function() {
$("#my-special-id").append('<a href="' + order + '">link to your order</a>')
});
});
答案 1 :(得分:0)
终于可以了。 这个想法是在显示之前使用open事件来操作html。简单易读。感谢@Rory McCrossan为我指引正确的方向。
jQuery('<div />' ).load( url, function() {
jQuery(this).dialog({
autoOpen: true,
modal: true,
resizable: true,
open: function(){jQuery("#my-on-the-fly-order-link").val('link-to-order') },
... // more stuff
在公开赛中,我可以做任何需要的事情,而且可读。