在下面的findParentByClassName函数中,currentParent返回undefined。有人能告诉我为什么吗?我认为它实际上在getSongItem,clickHandler和HTML TableRowElement中也是未定义的。为什么currentParent未定义
这是问题出现的地方。
var findParentByClassName = function(element, targetClass) {
if (element) {
if (element.parentElement && element.parentElement.className) {
if (element.parentElement === null) {
console.log("No parent found");
} else if (element.parentElement.className !== targetClass) {
console.log("No parent found with that class name.");
} else if (element.parentElement !== null &&
element.parentElement.className === targetClass) {
var currentParent = element.parentElement;
}
while (currentParent.className !== targetClass && currentParent.className !==
null) {
currentParent = currentParent.parentElement;
}
//I need to know why currentParent is returning undefined
return currentParent;
}
}
};
这里也可能有问题。
var getSongItem = function(element) {
switch (element.className) {
case 'album-song-button':
case 'ion-play':
case 'ion-pause':
return findParentByClassName(element, 'song-item-number');
case 'album-view-song-item':
return element.querySelector('.song-item-number');
case 'song-item-title':
case 'song-item-duration':
return findParentByClassName(element, 'album-view-song-item').querySelector('.song-item-number');
case 'song-item-number':
return element;
default:
return;
}
};
你可以在问题中包含HTML吗? – guest271314
我不知道如何在创建原始帖子之后。 –
您可以在stacksnippets中重现该问题吗?见https://stackoverflow.com/help/mcve – guest271314