我有一種情況,我想要集中輸入標籤(如果存在),或者它的容器(如果沒有)。所以我想的做這件事的一種智能的方式:關於帶有多個選擇器的querySelector()
滑稽,不過,querySelector
總是返回.container
元素。
我開始調查並發現,無論放置不同選擇器的順序如何,querySelector
總是返回相同的元素。
例如:
var elem1 = document.querySelector('p, div, pre');
var elem2 = document.querySelector('pre, div, p');
elem1 === elem2; // true
elem1.tagName; // "P".
我的問題是:什麼的這種行爲「理由」,什麼「規則」(如果有的話),使P因子在DIV和PRE元素具有優先權。
注:上述情況,我想出了一個優雅的少,但功能的解決方案:
(document.querySelector('.container input') || document.querySelector('.container') ).focus();
一如既往 - 它只是閱讀手冊) –