我现在已经搜索了很长一段时间,试图找到一种方法来改变(删除链接,突出显示,w / e)刚刚动态添加的html内容。
首先,我使用getJSON下载一个跨域网站:
$.getJSON('http://whateverorigin.org/get?url=' + encodeURIComponent('http://my.other.site/') + '&callback=?', function (data) {
$('#main').html(data.contents);
});
然后,我尝试使用jquery:
访问内容$('a').unwrap;
现在我认为我理解动态生成的节点需要通过jQuery" .on"方法,但像"准备好"或者"改变"既不是在文件上也不是我的" #main"。
其他活动,例如" mouseMove"或"点击"实际工作:
$(document).on('click', 'a', function () {
$(this).unwrap();
});
$(document).on('click', '#primaryMenu', function () {
alert('yeee');
});
但我无法看到一种方式(或地方),例如:
$('h3').wrap('<i></i>');
如您所见,我使用WhateverDomain.com来允许跨域GET请求。
我也愿意接受其他建议,以便能够复制网站并随意修改。
以下是我一直在使用的小提琴:Fiddle link
答案 0 :(得分:1)
您可以在将数据添加到DOM之前将数据加载到jquery对象中,然后在那里进行任何调整。
像这样:http://jsfiddle.net/uGgk4/1/
$(document).ready(function(){
$(document).on('click', 'a', function () {
$(this).unwrap();
});
$(document).on('click', '#primaryMenu', function () {
alert('yeee');
});
var jqxhr = $.getJSON('http://whateverorigin.org/get?url=' + encodeURIComponent('http://www.wiiu-info.fr/') + '&callback=?', function (data) {
var loadedData = $(data.contents);
loadedData.find("a").unwrap();
$('#main').empty();
$('#main').append(loadedData);
});
});
首先我将数据内容包装在jquery中,然后在将元素附加到DOM之前访问它们。
答案 1 :(得分:0)
添加&#39; preventDefault()&#39;:
$(document).on('click', 'a', function (e) {
e.preventDefault();
$(this).unwrap();
});