2010-09-22 9 views
7

मेरे पास कुछ divs हैं जो PHP का उपयोग करके बनाए जाते हैं। Div के अंदर एंकर हमेशा एक एचआरईएफ होता है, भले ही यह खाली हो। असल में, मैं यह पता लगाने की कोशिश कर रहा हूं कि एचआरईएफ खाली है या नहीं। मेरी कोडमैं jquery में खाली attr() के लिए कैसे जांचूं?

<div class="title"> 
    <a class="article" href="">Lorem Ipsum</a> 
</div> 

यहाँ है:: यह सामग्री है,, कुछ भी नहीं है अगर यह खाली है, पाठ को निकाल देते हैं, लंगर हटाते हैं, तो उन्हें पाठ वापस में डाल

यहाँ div है।

jQuery(document).ready(function($) { //required for $ to work in Wordpress 

    $(".article").each(function(){ 
     if ($(this).attr('href') !== undefined) { 
      return; 
     } else { 
      var linkTitle = $(this).html(); 
      $(this).parent().empty().html(linkTitle); 
     }        
    });  
//--> 
}); 
+0

जहां html में लेख मेरी गलती मैं देख रहा है यह – mcgrailm

उत्तर

15

आप एक खाली href विशेषता के लिए जाँच कर सकते हैं और "खोलने" इस तरह .replaceWith() का उपयोग कर उन लिंक्स:

$(".article[href='']").replaceWith(function() { return this.innerHTML; }); 

You can give it a try here

+2

dammit निक 8 ^) – mcgrailm

+0

मुझे पसंद है कि यह कैसे एक सशर्त शाखा – mcgrailm

+0

यह में काम करता है के लिए की जरूरत को हटा आपका लिंक, लेकिन जब मैं इसे अपने कोड में डालता हूं, तो मुझे एक 'अनकॉटेड सिंटेक्स त्रुटि मिलती है: अप्रत्याशित टोकन ILLEGAL' – Jared

12

आप बस undefined के खिलाफ परीक्षण के बजाय एक बूलियन के रूप में विशेषता परीक्षण कर सकते हैं:

if ($(this).attr('href')) { 
    // href is not blank 
} else { 
    // href is blank 
} 
+1

'this.href' बहुत आसान है;) –

+1

यह जांचता है कि कोई href attr() है, भले ही यह खाली न हो? – Jared

+2

@ निक मैं कभी-कभी भूल जाता हूं कि jQuery के नीचे बैठी यह पुरातन "जावास्क्रिप्ट" चीज है: पी – meagar

1

बस 'href' विशेषता से छुटकारा पाने के लिए:

$("#myLink[href='']").removeAttr('href'); 

अनेक लक्ष्यीकरण के लिए, के लिए उदाहरण 'शैली' विशेषता:

$("#myDiv td, a, p, table, nav, header[style='']").removeAttr('style'); 

इस तरह, आपको केवल मिल जाएगा संपूर्ण तत्व को हटाने के बजाय यह खाली होने पर विशेषता से छुटकारा पाएं।

एक पूर्ण कोड उदाहरण होगा:

$('#myDiv table, tr, td, a, p').each(function() { 
if ($(this).attr('style') == '') { 
    $(this).removeAttr('style'); 
} 
}) 
संबंधित मुद्दे