मैं अभी लंबे समय से शोध कर रहा हूं लेकिन मुझे वह समाधान नहीं मिल रहा है जिसकी मुझे वास्तव में आवश्यकता है। तो मैंने सोचा कि मैं यहाँ पूछने जा रहा हूँ।

मैं अभी एक Wordpress थीम के साथ काम कर रहा हूँ और एक शेड्यूल है। इस शेड्यूल में प्रत्येक ईवेंट के लिए "रजिस्टर" बटन हैं, ताकि आप इसे बुक कर सकें। यदि ईवेंट बुक करने में सक्षम है तो आपको एक URL डालना होगा। अगर यह बुक करने में सक्षम नहीं है तो इसके बजाय "#" है। लेकिन दोनों विकल्पों के लिए "रजिस्टर" बटन अभी भी दिख रहा है, हालांकि आप इसे बुक नहीं कर सकते।

तो अब मैं उन बटनों को अदृश्य बनाने की कोशिश कर रहा हूं जिनके पास यूआरएल के रूप में "#" है, लेकिन मुझे नहीं पता कि कैसे। मुझे लगता है कि जेएस इसे करने के लिए सबसे अच्छा होगा ?!

संरचना इस प्रकार है:

<div class="sc_schedule_button">
    <a href="#">Register</a>
</div>

हो सकता है कि आप में से कोई मुझे समाधान खोजने में मदद कर सके। बहुत बहुत धन्यवाद =)

2
Vanessa 28 मार्च 2018, 15:25

3 जवाब

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

जब आप इसे CSS से छिपा सकते हैं तो JavaScript का उपयोग क्यों करें

[href="#"] {
  display: none;
}
<a href="#sss">A</a>
<a href="#">B</a>
<a href="http://www.example.com#">C</a>

यदि आप इसे जावास्क्रिप्ट के साथ चाहते हैं

var anchors = document.querySelectorAll('[href="#"]')
anchors.forEach( function (el) {
  if(el.getAttribute('href') === '#') el.setAttribute('hidden', true)
})
<a href="#sss">A</a>
<a href="#">B</a>
<a href="http://www.example.com#">C</a>

यदि आपको माता-पिता को छिपाना है, तो आप केवल जावास्क्रिप्ट के साथ माता-पिता का चयन कर सकते हैं

var anchors = document.querySelectorAll('[href="#"]')
anchors.forEach( function (el) {
  if(el.getAttribute('href') === '#') el.parentNode.setAttribute('hidden', true)
})
<div><a href="#sss">A</a></div>
<div><a href="#">B</a></div>
<div><a href="http://www.example.com#">C</a></div>

माता-पिता को CSS से छिपाना अभी ब्राउज़र में उपलब्ध नहीं है। हमें प्रमुख ब्राउज़रों में :has() समर्थित होने तक प्रतीक्षा करने की आवश्यकता है। जब यह होगा, तो यह केवल .sc_schedule_button:has(a[href="#"]) {} होगा

7
epascarello 28 मार्च 2018, 12:39

इसके लिए querySelectorAll का उपयोग करें

var a = document.querySelectorAll("a[href='#']");
a.forEach(function(a){
	var p = a.parentNode;
	p.style.display = "none";
});
<div class="sc_schedule_button">
    <a href="#">Register</a>
</div>
<div class="sc_schedule_button">
    <a href="url">Login</a>
</div>
0
badboy24 28 मार्च 2018, 12:28

JQuery एक विकल्प है? यदि हाँ, तो आप अपने href में # वाले सभी लिंक चुनने के लिए इस चयनकर्ता का उपयोग कर सकते हैं:

$("a[href*=#]")

फिर आप इन तत्वों को .hide() कर सकते हैं।

0
edu 28 मार्च 2018, 12:27