我目前正在学习 jQuery。我知道 jQuery 是 JavaScript 的自定义库。
我在一本只使用 JavaScript 的书中做一些学习示例,为了进一步提高我的学习经验,我试图将 jQuery 用于任何可能更有效的事情。
所以,我有这个代码:
function addLetter(foo) {
$(foo).unbind('click');
var tileLetter = $(foo).attr('class').split(' ');
var letter = tileLetter[2].charAt(1);
if (document.getElementById('currentWord').childNodes.length > 0) {
$('#currentWord p').append(letter);
} else {
var p = document.createElement('p');
var txt = document.createTextNode(letter);
p.appendChild(txt);
$('#currentWord').append(p);
}
}
问题一:
如果我改成document.getElementById('currentWord').childNodes.length
它$('#currentWord').childNodes.length
不起作用。我认为 jQuery 选择器与 JS document.getElementById 是一样的,因为它让我回到了 DOM 元素。如果是这种情况,那么能够在其上使用 .childNodes.length 函数是有意义的;但它不起作用。我想这不是一回事吗?
问题2:
该代码是教科书代码。我已经添加了其中的所有 jQuery。我的 jQuery 知识有限,有没有更有效的方法来执行该功能?
该函数的目的:
如果这是第一次运行,该函数应该创建 ap 元素并用文本节点填充它。如果 p 元素已经被创建,它只是简单地将字符附加到其中。
这是一个单词生成游戏,所以你点击一个字母,它就会被添加到一个'currentWord' div 中。瓦片的字母嵌入在第三个 css 类中,因此 attr 分裂。
谢谢!