为了设置我网站上元素的 html,我主要使用
$('elementId').innerHTML = "<p>text</p>";
浏览 mootools 文档,我发现给出了这个例子:
$('myElement').set('html', '<div></div><p></p>');
这些有什么区别吗?我是否应该经历并改变.innerHTML
到 mootools 方法,还是没有区别?
第一个起作用的原因是因为 - 就目前而言 - mootools 中的 $ 选择器 (document.id) 返回实际元素。这在普通浏览器中与 document.getElementById() 相同,并且元素对象公开其所有属性/属性供您编辑。
不使用 .set 的问题是:
- 当 mootools 2.0 又名 MILK 发布时,它将无法工作,因为它将像 jQuery 一样被包装,并且选择器不会返回对象(mootools 正在成为 AMD,因此它不会修改本机类型 - 元素、数组、数字、字符串) ,函数(也许!)- 原型)。
- 你不能链接这个。通过设置,您可以:
$('someid').set("html", "loading...").highlight();
, 例如。
- set 是重载的 - 它可以通过传递对象来设置单个属性或多个属性。例如,
element.set({html: "hello", href: "#", events: boundObj});
- look at https://github.com/mootools/mootools-core/blob/master/Source/Element/Element.js#L936-942 https://github.com/mootools/mootools-core/blob/master/Source/Element/Element.js#L936-942- 你可以传递一个数组作为参数,它会为你连接它,这使得使用多行字符串变得容易并确保 IE 中的性能
编辑:BBT 粉丝打开了一个单独的主题:框架是否应该尝试阻止您/阻止您做破坏浏览器的事情?
- 如果您愿意,您可以通过更改该设置器来添加不允许的元素
Element.Properties.html.set = function() { var tag = this.get("tag"); ... check tag };
- mootools 不是很棒吗?
mootools - 默认情况下 - 不会试图阻止你这样做蠢货[tm]- 这是你的责任:) 例如,尝试在 IE 中将元素的高度设置为负值。 Fx 类应该阻止你这样做吗?不。二传手应该阻止你吗?不。不断检查是否没有中断意味着在动画等性能关键的情况下,它会减慢一切。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)