我有一些DOM操作不适用于1.7.2
,但正在使用1.8.3
1.8.3
http://jsfiddle.net/6Nyqd/
1.7.2
http://jsfiddle.net/6Nyqd/1/
(抛出错误An attempt was made to reference a Node in a context where it does not exist.
)
更新
我应该更改什么以便它可以与1.7.x+
版本的jQuery一起使用?
答案 0 :(得分:1)
在1.8之前,append方法不接受数组作为参数
请参阅this bug
作为一种解决方案,您可以处理一系列dom元素,如
var options = "text for li";
var $ul = $(".loto_stat");
var $template = $ul.first().children().first();
var $domel = $.map(options.split(''), function (el) {
return $template.clone().show().data("brojevi", el)
.find(".text").text(el).end().get(0);
});
$ul.append($domel);
为什么你的查询不起作用,map()
函数返回jQuery对象,因此$domel
是jQuery对象的数组,jQuery 1.7不支持,但支持dom元素数组。
1.9 / 1.10的问题不是附加,而是将字符串传递给$.map()
,你需要传递一个数组,所以使用options.split('')
答案 1 :(得分:1)
在jQuery 1.8之前,你不能附加一个jQuery对象数组。
你可以这样做:
$.each($domel, function(_, e) {$ul.append(e);});
你说不适用于1.9和1.10的原因是因为你使用$.map
的字符串,现在需要一个数组。
所以改变
$.map(options,
到
$.map(options.split(''),