<html>
<head>
<script>
remove_line(11);
// This should remove the line 11 from source code,
// eliminating the unordered list element.
</script>
</head>
<body>
<p>Some text</p>
<ul><li>Some list item</li></ul>
<a>Some link</a>
</body>
</html>
我是完全意識到這段代碼傷害了你的眼睛。但是,對於非常非典型的技術原因(主要是性能),這將是解決我的問題最有效的方法。這很可能是不可行的,但它確實會爲我節省很多編碼和性能問題。Javascript是否具有給定文檔原始源代碼的內部知識?
如果不是可行的(如預期),什麼是最一致的/有效符號/對唯一技術識別/訪問DOM的每元素(包括文本被混合/內嵌元件)。
我在考慮以下符號:tag_name [index]其中索引將通過源代碼中的外觀順序表示第X個元素。但是,我不確定它是否有效,我不確定如何在Javascript中實現它。我也想過XPath,但我不確定它是否支持Javascript(除了一些框架「模擬」它)。
UPDATE:我原來的職位也不是很清楚,所以我要澄清一些要點:
我正在圖書館的最終目標是「儘量減少頁面渲染「,所以做服務器端並將其發送回用戶不是一種選擇。一旦我有一個我正在嘗試做的功能實現,我會發布更新。否則,在這裏解釋時間太長。
爲了澄清什麼,我真正需要做的,讓我給下面的(虛構的)例子:
- 腳本X是一個服務器端腳本,隨機選擇document.html DOM節點。
- 腳本X需要告訴腳本Y(位於document.html中的Javascript腳本)以刪除它所選擇的DOM節點。
- 腳本X如何唯一標識它已選擇的DOM節點,以便它可以將它傳遞給腳本Y?
我如何唯一標識DOM節點,以便腳本Y可以識別它,並操縱它真正的興趣。優選地,它也應該與文本節點一起工作。
爲什麼你不能通過CSS選擇器(例如通過jQuery)或id(通過'document.getElementById')來訪問它們? – 2010-01-15 10:08:21
實際的原因需要很長時間來解釋,但它基本上是因爲我正在寫一個通用的庫,應該與任何給定的HTML文檔一起工作。 – 2010-01-15 10:16:06