नीचे दिए गए कोड में मैं यह पता लगाने में सक्षम होना चाहता हूं कि एचटीएमएल तत्व .img
से यूआरएल सेट है या नहीं। उदाहरण के आधार पर, कोई यूआरएल सेट नहीं किया गया है और इसलिए .status
को "इमेज इज सेट" नहीं पढ़ना चाहिए क्योंकि तत्व पर कोई यूआरएल नहीं है।
if ($(".img").css("background-image", "url") != "") {
$(".status").html("Image is Set");
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="status">No Image Set</div>
<div class="img" style="background-image: url('')"></div>
1 उत्तर
.css("background-image", "url")
का उपयोग करके बैकग्राउंड-इमेज
प्रॉपर्टी को मान पर सेट किया जा रहा है url
और jQuery
ऑब्जेक्ट संदर्भ लौटाएं जो कभी भी ""
के बराबर नहीं होगा।
साथ ही, url('')
वास्तव में वर्तमान पृष्ठ URL को संदर्भित करता है, इसलिए jQuery के .css("background-image")
का उपयोग करने से दुर्भाग्य से url(http://localhost.com/)
जैसी किसी चीज़ का समाधान हो जाएगा।
आपको इसके बजाय मूल्य का निरीक्षण करना होगा। मैं तत्व की style
विशेषता के विरुद्ध रेगेक्स परीक्षण का उपयोग करने की अनुशंसा करता हूं।
const status = $(".status")
const rx = /url\(('|")?[\w/:?&%.-]+\1\)/i
$(".img").each((i, { style: { backgroundImage } }) => {
const hasImage = rx.test(backgroundImage)
console.log(i, backgroundImage, hasImage)
status.append($("<li>", {
text: hasImage ? "Image is set" : "No image set"
}))
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ol class="status"></ol>
<div class="img"></div>
<div class="img" style="background-image: url('')"></div>
<div class="img" style="background-image: url('https://uploads-ssl.webflow.com/59de7f3f07bb6700016482bc/5ed2bfa63643bc3cf3cf2b5c_files-and-folders.svg')"></div>
\w
यूआरएल की हर चीज से मेल नहीं खाता। मैं अपना जवाब ठीक कर दूंगा
rx
को यह पता लगाने के लिए अपडेट किया जा सकता है कि कोई URL या बेस64 स्ट्रिंग बैकग्राउंड-इमेज url के अंदर है या नहीं? आप कोडपेन से देख सकते हैं कि जब मैं पहली बार एक पीडीएफ अपलोड करता हूं और फिर दूसरे के लिए, पहला उदाहरण रीसेट करता है जैसे कि hasImage
सत्य नहीं था। codepen.io/moofawsaw/pen/NWNKzmv
संबंधित सवाल
नए सवाल
jquery
jQuery एक जावास्क्रिप्ट लाइब्रेरी है, जावास्क्रिप्ट टैग को जोड़ने पर भी विचार करें। jQuery एक लोकप्रिय क्रॉस-ब्राउज़र जावास्क्रिप्ट लाइब्रेरी है, जो दस्तावेज़ ऑब्जेक्ट मॉडल (DOM) ट्रैवर्सल, इवेंट हैंडलिंग, एनिमेशन और AJAX इंटरैक्शन को ब्राउज़रों की विसंगतियों को कम करके सुविधाजनक बनाता है। JQuery से संबंधित एक प्रश्न jQuery से संबंधित होना चाहिए, इसलिए jQuery को प्रश्न में कोड द्वारा उपयोग किया जाना चाहिए और कम से कम jQuery के उपयोग से संबंधित तत्वों को प्रश्न में होना चाहिए।
url('')
एक मान्य URL है। यह वर्तमान पृष्ठ को संदर्भित करता है। वहां एक खाली स्ट्रिंग का उपयोग करना अच्छा नहीं है