gpt4 book ai didi

javascript - 使用 zepto 创建的 html 对象没有获得 id

转载 作者:行者123 更新时间:2023-11-28 02:25:05 25 4
gpt4 key购买 nike

当我使用 zepto.js 从 HTML 字符串创建元素时,如下所示:

element = $("<ul />", {id:"myID"});
console.log(element);

id“myID”不会添加到元素中。控制台输出如下:

[<ul></ul>]

根据http://zeptojs.com/ -> $() 它应该得到一个 id:

>// create element with attributes:
>$("<p />", { text:"Hello", id:"greeting", css:{color:'darkblue'} })
>//=> <p id=greeting style="color:darkblue">Hello</p>

知道出了什么问题吗?或者这可能是一个错误?

编辑:

我自己解决了这个问题,如下所示:

element.attr('id', 'myID');

尽管最好不要采取这样的额外步骤......

最佳答案

似乎在版本 Zepto.js (1.0rc1) 中没有引入此 api。

参见tag v1.0rc1中的第152行第100-108行

dom = zepto.fragment(selector.trim(), RegExp.$1), selector = null

zepto.fragment = function(html, name) {
if (name === undefined) name = fragmentRE.test(html) && RegExp.$1
if (!(name in containers)) name = '*'
var container = containers[name]
container.innerHTML = '' + html
return $.each(slice.call(container.childNodes), function(){
container.removeChild(this)
})
}

以及 master 中的第 167 行第 110-128 行

dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null

zepto.fragment = function(html, name, properties) {
if (html.replace) html = html.replace(tagExpanderRE, "<$1></$2>")
if (name === undefined) name = fragmentRE.test(html) && RegExp.$1
if (!(name in containers)) name = '*'

var nodes, dom, container = containers[name]
container.innerHTML = '' + html
dom = $.each(slice.call(container.childNodes), function(){
container.removeChild(this)
})
if (isPlainObject(properties)) {
nodes = $(dom)
$.each(properties, function(key, value) {
if (methodAttributes.indexOf(key) > -1) nodes[key](value)
else nodes.attr(key, value)
})
}
return dom
}

另请阅读此issue 。也许它会在大 1.0 的时候引入。

现在,在 API 可以工作之前,您可以使用以下代码来完成此操作:

element = $("<ul />").attr({id:"myID"});

关于javascript - 使用 zepto 创建的 html 对象没有获得 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15088438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com