我对 Javascript/jQuery 中的选择器究竟是如何工作的有些困惑。我有两种以几乎相同的方式调用的方法,它们似乎返回不同的选择器,我不太清楚为什么。
if (document.URL.indexOf("search?s=") !== -1){
updateOldSearch();
} else {
$("li a:contains('Search')").bind("click", replaceWithSearch);
}
在这里的 else 语句中一切正常:
function replaceWithSearch(){
this.parentNode.replaceChild(searchWrapper, this); //Works fine
}
但是当我以在我看来是相同的方式访问它时(显然它实际上并不相同)它会中断
function updateOldSearch(){
var courseTab = $("li a:contains('Search')");
courseTab.parentNode.replaceChild(newBox, courseTab); //parentNode is undefined
}
关于这里幕后发生的事情的任何解释?是否有一些我滥用的 jQuery 自动转换?