我有一段代碼,允許從這樣的子節點刪除文本:Jquery的:不()選擇不工作
$.fn.removeText = function() {
for (var i=this.length-1; i>=0; --i) removeText(this[i]);
};
function removeText(node) {
if (!node) return;
for (var i=node.childNodes.length-1; i>=0; --i) {
var childNode = node.childNodes[i];
if (childNode.nodeType === 3) node.removeChild(childNode);
else if (childNode.nodeType === 1) removeText(childNode);
}
}
$('body').removeText();
所以我現在要排除的元素,比如像跨度這個:
$('body:not(span)').removeText();
它不工作,一切都被刪除。我嘗試了幾個沒有運氣的其他(Jquery)的東西。我必須更改removeText()
功能嗎?我真的想堅持Jquery ..是否有其他的東西我可以嘗試?
究竟是你想與選擇過濾掉什麼? *沒有*'body'是'span',所以它*不能匹配寫入的任何內容。 – 2013-03-20 09:38:52
@大衛托馬斯我不明白......請你詳細說明一下嗎? – Youss 2013-03-20 09:40:24
您的選擇器正如所寫,選擇'body'標記,然後使用提供給':not()'選擇器的字符串從選擇中移除元素。因爲'body'不是'span',所以沒有元素會被刪除。閱讀[':not()'docs](http://api.jquery.com/not-selector/)。 – 2013-03-20 09:42:56