मैं सिर्फ जानना चाहता हूं क्यों, कृपया कोई मुझे कुछ संकेत दें?

const getElement = (selector, scope = window.document) => scope.querySelector(selector);

const getElement = (selector, scope) => (scope || window.document).querySelector(selector);

DOMContentLoaded ब्लॉक में कॉल करने पर त्रुटि querySelector is not a function पकड़ लेगा। ऑब्जेक्ट window पहले से मौजूद होना चाहिए।

// document.addEventListener("DOMContentLoaded", e => {
document.addEventListener("turbolinks:load", () => {
  // const $table = getElement("table");
  const $table = document.querySelector("table");

  // const $trees = getElement("[data-tree]", $table);
  const $trees = getElement("[data-tree]");
});
const getElement = (selector, scope = window.document) => scope.querySelector(selector);

window.addEventListener("DOMContentLoaded", e => {

  let aa = getElement('[data-tree]')

  console.log( aa.textContent )

  });
.as-console-wrapper { max-height: 100% !important; top: 0; }
.as-console-row         { background-color: yellow; }
.as-console-row::after  { display:none !important; }
<div   data-tree="xyz" >hello world</div>
0
yi quo 3 फरवरी 2021, 06:06

2 जवाब

सबसे बढ़िया उत्तर

जब आप वहां null पास करेंगे तो डिफ़ॉल्ट परम काम नहीं करेगा (doc), लेकिन null || value गिरकर value हो जाएगा

डिफ़ॉल्ट फ़ंक्शन पैरामीटर नामित पैरामीटर को डिफ़ॉल्ट मानों के साथ प्रारंभ करने की अनुमति देते हैं यदि कोई मान या अपरिभाषित पारित नहीं होता है।

const defaultTest = (val = 'abc') => {
  console.log('val:', val)
  console.log('val:', val || 'abc')
}

defaultTest(null)
defaultTest()
0
hgb123 3 फरवरी 2021, 06:15

क्या आप window.onload() ईवेंट आज़मा सकते हैं क्योंकि यह आपके पेज की सभी सामग्री के लोड होने की प्रतीक्षा करता है। हो सकता है कि चयनकर्ता डोम में तैयार न हो।

0
Richie50 3 फरवरी 2021, 06:17