2009-12-16 16 views
5

मैं एक कथन लिखने की कोशिश कर रहा हूं, जहां तत्वों में से एक का प्रदर्शन "कोई नहीं" पर सेट है, तो मैं चाहता हूं कि मूल तत्व "कोई भी" प्रदर्शित न करें ...jquery - पैरेंट विशेषता कैसे सेट करें?

यह कोड I '

<ul> 
    <li class="navnext" id="nextxa"> 
     <a id="nextx" href="#"><img src="/images/next.png"/></a> 
    </li> 

    <li class="navprev" id="prevxa"> 
     <a id="prevx" href="#" style="display: none;"><img src="/images/previous.png"/></a> 
    </li> 
</ul> 

उत्तर

8

इस प्रयास करें::

if($('#prevx').css('display') == 'none') { 
    $('#prevx').parent().css('display','none'); 
} 
हूँ की कोशिश कर रहा है, जो काम नहीं करता है ...

/* tried this first */ 
if($('#prevx a').attr('display') == 'none') { 
    $(this).parent().attr('display','none'); 
} 

/* and then this */ 
if($('#prevxa > a').attr('display') == 'none') { 
    $('#prevxa').attr('display','none'); 
} 

मार्कअप इस तरह दिखता है

अभी तक बेहतर:

$('#prevx').parent().css('display',$('#prevx').css('display')); 

यह उदाहरण मेरे लिए काम करता है। छिपाने के लिए, माता पिता को प्रदर्शित/कोई और इनलाइन के बीच बच्चे के प्रदर्शन टॉगल:

<ul> 
    <li class="navnext" id="nextxa"> 
     <a id="nextx" href="#"><img src="/images/next.png"/></a> 
    </li> 

    <li class="navprev" id="prevxa"> 
     <a id="prevx" href="#" style="display: inline;"><img src="/images/previous.png"/></a> 
    </li> 
</ul> 

<script> 
if ($('#prevx').css('display') == 'none') 
    $('#prevx').parent().css('display', 'none'); 
else 
    $('#prevx').parent().css('display', 'list-item'); 
</script> 
+0

हम्म ... मैं अपने कोड चिपकाया आप इसे यहां है बिल्कुल के रूप में है, और यह काम नहीं किया ... मैं भी करने की कोशिश की:। अगर ($ ('# Prevx') सीएसएस ('प्रदर्शन') == 'कोई नहीं') { $ ('# prevxa')। सीएसएस ('प्रदर्शन', 'कोई नहीं'); } और यह या तो काम नहीं करता (?) – n00b0101

+0

एक नया कोड स्निपेट के साथ उत्तर अपडेट किया गया - हो सकता है कि 'if ... else'' $ (document) में पहले से ही लपेटने का प्रयास करें। । – leepowers

+0

आह, ठीक है, बहुत धन्यवाद! – n00b0101

0

.attr

.css के लिए प्रयोग किया जाता है इस तरह के आईडी, शीर्षक, alt, src, आदि के रूप टैग के लिए प्रयोग किया जाता है सीएसएस शैलियों जैसे डिस्प्ले, फ़ॉन्ट, टेक्स्ट-सजावट: ब्लिंक, इत्यादि

पायगोरेक्स 1 के समाधान को चाल करना चाहिए।

0
if($('#prevx a').css('display') === 'none') { 
    $(this).parent().css('display','none'); 
} 
0

अपने कोड उदाहरणों से, आपके पास पहले से ही माता-पिता के लिए एक आईडी है, तो इसका उपयोग क्यों न करें?

if ($('#prevx').is(':hidden')) $('#prevxa').hide(); 

का उपयोग करें: एक :hidden selector (यह केवल छिपाने होगा) का उपयोग करना

:

इसके अलावा, वहाँ उन्हें काम करने के लिए क्या करने के लिए इस (लपेट नीचे लाइनों एक $(document).ready(function(){...}) अंदर) कई अन्य तरीके हैं एक ternary operator (माता-पिता इस छिपाने या दिखाएगा)

var showOrHide = ($('#prevx').is(':hidden')) ? 'none' : ''; 
$('#prevxa').css('display', showOrHide); 

JQuery कुछ शॉर्टकट का उपयोग करता है:

  • :hidden छुपे ऑब्जेक्ट्स पाएंगे (या प्रदर्शित करने के लिए सेट हैं: कोई नहीं)। इसे .is() के अंदर भी नहीं होना चाहिए। आप इसका उपयोग कर सकते हैं: $('div:hidden').show() सभी छिपे हुए divs को प्रकट करने के लिए।
  • :visible ऑब्जेक्ट छुपा नहीं कर रहे हैं (प्रदर्शन = '', 'इनलाइन', 'ब्लॉक', आदि)
  • $(element).hide() एक तत्व (सेट किसी से प्रदर्शित)
  • $(element).show() एक तत्व दिखाई देगा छुपा देगा मिलेगा (साफ करता है प्रदर्शन मूल्य)
संबंधित मुद्दे