सरल प्रश्न मुझे यकीन है, लेकिन मैं यह नहीं देख सकता कि यह कोड क्यों है:

const addDiv = (test) => {
    const markup = `
      <div class=${test? "name":"name name-active"}></div>
    `;
    element.insertAdjacentHTML('beforeend', markup);
};

<div class="name name-active"> के बजाय <div class="name" name-active=""> में परिणाम

क्या मैंने एक साधारण त्रुटि की है, या यह व्यवहार है जिसे मैं समझ नहीं पा रहा हूं? धन्यवाद

1
NickW 9 अक्टूबर 2019, 20:57

3 जवाब

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

टेम्प्लेट शाब्दिक के अंदर दोहरे उद्धरण बाहरी स्ट्रिंग का हिस्सा नहीं हैं, इसलिए आपको वर्ग मान को बाहर के उद्धरणों में लपेटना होगा।

सुनिश्चित करें कि class=" और " टेम्प्लेट शाब्दिक से बाहर हैं

const addDiv = (test) => {
    const markup = `
      <div class="${test? "name":"name name-active"}"></div>
    `;
    element.insertAdjacentHTML('beforeend', markup);
};
5
Dhananjai Pai 9 अक्टूबर 2019, 18:01
const addDiv = (test) => {
    const markup = document.createElement('div');
    markup.className = test ? "name" : "name active";
    element.insertAdjacentHTML('beforeend', markup);
};
0
Julio 9 अक्टूबर 2019, 18:27

मुझे लगता है कि ऐसा इसलिए है क्योंकि आपको अपनी लौटाई गई स्ट्रिंग ${test? "name":"\"name name-active\""} में उद्धरणों को बच निकले वर्णों के रूप में जोड़ने की आवश्यकता है

0
luke-webdev 9 अक्टूबर 2019, 18:01