Stackoverflow已經有了一個如何檢查元素exists in jQuery的答案。
當使用jQuery的答案,與小的變化,基本上可以歸結爲「送元魔jQuery函數的名稱,並檢查是否返回的東西」:安全地查找jQuery中是否存在元素
if ($('elementName')[0]) ...
問題這種方法是如果jQuery函數收到一個html片段,它將「實例化」html(包含javascript)並返回代表它的節點。 這意味着jQuery函數只能與受信任的輸入一起使用,至少要將您的網站暴露給基於DOM的XSS like the one reported not long ago for wordpress。 我的問題是:
有沒有辦法使用jQuery來檢查一個元素是否存在不可信輸入?
問題的重要的部分是:使用jQuery
我知道有使用「香草的javascript」替代了jQuery,getElementById
- 想到,如果元素不返回
null
存在;但是... jQuery選擇器比getElementById
更強大,jQuery讓你不用擔心瀏覽器是否支持這些功能。 - 帶有不可信輸入
您明顯可以使用正則表達式或html編碼來清理輸入,但您仍然需要擔心瀏覽器對您的清理代碼的支持。
I.e.我的問題基本上是有沒有辦法阻止jQuery創建新的DOM對象,並只是說,jQuery函數的輸入是否映射到現有的DOM對象?
「jQuery選擇器比...更強大」querySelectAll()'? – PeeHaa