enter image description here

मैं क्रोम एक्सटेंशन "कस्टम जावास्क्रिप्ट" की मदद से इस वेबसाइट पर कुछ ली तत्वों को छिपाने की कोशिश कर रहा हूं

मैंने स्थानीय फ़ाइल पर अपने कोड का परीक्षण किया है और यह केवल पहले ली के साथ काम करता है:

var b = document.querySelector("span.price_value").innerHTML;
var processed = b.replace(/ /g, '');
var output = parseInt(processed, 10);
if (output >= 5000) {
    document.querySelector(".item").style.display = "none";
}

मैं उस स्थिति से मेल खाने वाले सभी ली तत्वों की सीएसएस संपत्ति कैसे बदल सकता हूं?

QuerySelectorAll बस एक अपरिभाषित त्रुटि देता है।

0
Simo 3 अप्रैल 2018, 15:34

4 जवाब

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

जैसा कि आपने को टैग किया है, आप .filter(fn) सभी span.price_value एलिमेंट पासिंग टेस्ट कंडीशन प्राप्त करने के लिए, फिर .hide() के पूर्वज तत्व को लक्षित करने के लिए .closest() का उपयोग करना

//Get all span having text > 500
$("span.price_value").filter(function () {
    var processed = $(this).html().replace(/ /g, '');
    var output = parseInt(processed, 10);
    return output >= 5000
})
.closest(".item") //Target parent items
.hide() //Hide
1
Satpal 3 अप्रैल 2018, 12:38

QuerySelectorAll वस्तुओं की एक सूची देता है। इसके माध्यम से पुनरावृति करें और प्रत्येक तत्व को प्रदर्शित करने के लिए सेट करें।

var items = document.querySelectorAll(".item");
items.forEach(function(item) {
  item.style.display = "none"
});
1
Todilo 3 अप्रैल 2018, 12:42

querySelector() चयनकर्ता से मेल खाने वाला पहला तत्व लौटाता है। आप उन तत्वों की सूची प्राप्त करने के लिए querySelectorAll() का उपयोग कर सकते हैं जिन्हें आप फिर से दोहरा सकते हैं।

for (var item of document.querySelectorAll("span.price_value")) {
    var processed = item.innerHTML.replace(/ /g, '');
    var output = parseInt(processed, 10);
    if (output >= 5000) {
        item.style.display = "none";
    }
}
1
Máté Safranka 3 अप्रैल 2018, 12:39

आप querySelectorAll का उपयोग करना चाहेंगे, जो querySelector के बजाय एक नोड सूची देता है, जो इसे मिलने वाला पहला नोड देता है।

सूची में प्रत्येक नोड को प्रभावित करने के लिए आपको किसी प्रकार के 'फॉर' लूप का उपयोग करना होगा।

1
Christopher Meyers 3 अप्रैल 2018, 12:38