Javascript WebStorm需要$.insertBefore()的多个参数吗?
我有下面的代码,目前正在按预期工作。它根据属性Javascript WebStorm需要$.insertBefore()的多个参数吗?,javascript,jquery,webstorm,Javascript,Jquery,Webstorm,我有下面的代码,目前正在按预期工作。它根据属性loadOrder将元素插入到objGrid中 let $elTileTitle = $('<div/>', { class: 'tileTitle', html: tile.title }); let $elNext; for (let i = tile.loadOrder; i < objectLength(tiles); i++) { let $potentialNext = $(`.tile[data-loador
loadOrder
将元素插入到objGrid
中
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);
}
}
这表现出奇怪的行为。此代码运行后,$(“#网格”)
为空。奇怪的是,所有的tile都存在于DOM中(即,如果我在控制台中键入$(“#tile store”)
,我会得到一个包含所有预期属性的对象),但是我在HTML(“元素”选项卡中找不到它们,UI为空
有什么明显的我做错了吗?如果需要,我可以提供更多信息
但是我注意到IDE中有一条警告,insertBefore()的参数数量无效
你的IDE搞错了。它错误地将的规则应用于您对jQuery的使用。您最初对jQuery的使用还不错如果使用的是DOM,则需要给它另一个参数。但它们的功能完全不同。唉。既然你发了这篇文章,我记得我已经发现了这一点,甚至还问过它。这是JetBrains的一个bug。我找不到这个bug,所以我打开了我看到的关于IDE bug的其他问题,这些问题没有被认为是离题的,FWIW;当WebStorm对他们这样做时,其他人可能会有同样的问题。:-)我看你加了标签,这是个好主意。也许把标题改为“为什么WebStorm告诉我insertBefore有无效的参数?”或者类似的内容来帮助搜索……好提示。完成。
$('#grid').insertBefore($elTile,$elNext);