對於Chrome瀏覽器插件,我試圖滾動到包含給定字符串的DOM元素。但是,在過濾選擇器之後,我在DOM中有點迷路了。滾動到javascript中的文本
$('*', 'body')
.andSelf()
.contents()
.filter(function(){
return this.nodeType === 3;
})
.filter(function(){
// Only match when contains given string anywhere in the text
if(this.nodeValue.indexOf(givenString != -1){
//idArr.push(this.offsetLeft);
var ele = $(this);
$('html, body').animate({
scrollTop: ele.offset().top
}, 2000);
return true;
}
return false;
});
每當我試圖得到的ele
的頂偏,我得到的頂部相對於文檔而不是滾動條的偏移。有任何想法嗎?我認爲這可能是一個範圍問題,我在過濾器裏面使用了$this
,但是this
裏面的一個過濾器應該引用當前的DOM元素。
編輯:
通過調用
var ele=$(this.parentNode);
我能得到包含文本節點
也許這個幫助你https://developer.mozilla.org/en-US/docs/Web/API/element.scrollIntoView – zloctb