WebStorm期待$ .insertBefore()的多个参数?

时间:2017-12-04 17:59:49

标签: javascript jquery webstorm

我有以下代码,目前正在按预期工作。它根据属性http://example.com/login?param=value将元素插入objGrid

loadOrder

如上所述,这似乎运作良好。但是我在IDE中发现警告let $elTileTitle = $('<div/>', { class: 'tileTitle', html: tile.title }); let $elNext; for (let i = tile.loadOrder; i < objectLength(tiles); i++) { let $potentialNext = $(`.tile[data-loadorder="${i}"]`); if ($potentialNext.length > 0) { $elNext = $potentialNext; break; } } if (typeof $elNext !== 'undefined') { $elTile.insertBefore($elNext); } else { let $elPrev; for (let i = tile.loadOrder; i < 0; i--) { let $potentialPrev = $(`.tile[data-loadorder="${i}"]`); if ($potentialPrev.length > 0) { $elPrev = $potentialPrev; break; } } if (typeof $elPrev !== 'undefined') { $elTile.insertAfter($elPrev); } else { $elTile.appendTo(objGrid); } } 的参数数量无效。查看文档后,我用以下内容替换了该行:

insertBefore()

这表现出奇怪的行为。此代码运行后,$('#grid').insertBefore($elTile,$elNext); 为空。奇怪的是,所有的磁贴都存在于DOM中(即,如果我在控制台中键入$('#grid'),我会得到一个具有所有预期属性的对象),但是我无法在HTML中找到它们(“元素”选项卡)用户界面是空白的。

有什么明显我做错了吗?如果需要,我可以提供更多信息

1 个答案:

答案 0 :(得分:3)

  

但是我注意到我的IDE中发出一条警告:insertBefore()的参数数量无效。

你的IDE错了。它错误地将the DOM's insertBefore的规则应用于您使用 jQuery的 insertBefore。你最初使用jQuery就好了。 如果你使用的是DOM,你需要给它另一个参数。但它们的功能完全不同。