2011-04-27 12 views
17

मैं केवल एक div sale_wrap को छोड़कर, सभी divs में सभी इनपुट मान पर मूल्य को काटना चाहता हूं। मैं jquery के साथ अपवाद कैसे बना सकता हूं?jquery यदि div id id

<div id="one_wrap"> 
    <input type="checkbox" name="1" value=""> 
    <input type="checkbox" name="1" value=""> 
</div> 
<div id="two_wrap"> 
    <input type="checkbox" name="2" value=""> 
    <input type="checkbox" name="2" value=""> 
</div> 
<div id="sale_wrap"> 
    <input type="checkbox" name="3" value=""> 
</div> 

jQuery:

if($("div").attr("id") != "sale_wrap") { 
    t_balance; 
} else { 
    var sale = t_balance*((100-window.discount_p)/100); 
    t_balance = sale; 
} 
+0

यहां कुछ गलत हो रहा है। '$ (" div ")। attr (" id ") हमेशा चयनित से पहले div की आईडी लौटाता है। मुझे आशा है कि वह स्थिति हमेशा सच रहेगी। क्या आप हमें बता सकते हैं कि कौन सा फ़ंक्शन/ईवेंट, आप इस कोड को आजमा रहे हैं। – Bharath

+1

यह बहुत स्पष्ट नहीं है कि आप यहां क्या करने की कोशिश कर रहे हैं। एचटीएमएल मार्कअप सभी चेकबॉक्स हैं, और आपका उदाहरण जेएस (छद्म कोड) कुछ अन्य वैश्विक 'discount_p' के आधार पर कुछ वैश्विक 't_balance' सेट कर रहा है ... ऐसा लगता है जैसे आपका जेएस कोड कुछ फ़ंक्शन का हिस्सा हो सकता है divs के माध्यम से पहले से ही looping, और 't_balance' वापस? –

उत्तर

52

उपयोग not selector

$("div:not(#sale_wrap)") 
+1

'.att ("id")! = "Sales_wrap", और पूरा' if 'कथन, अनावश्यक है। चयनकर्ता ने परिणाम सेट से 'sales_wrap' आईडी को पहले ही हटा दिया है, इसलिए इसे फिर से जांचने की आवश्यकता नहीं है। –

+0

@ z33mm: यह काम नहीं कर रहा है :) – tonoslfx

+0

ओह thanx। पूरी तरह से कोड नहीं पढ़ा। संशोधित उत्तर प्रश्न में उदाहरण केवल अल्ट्रा ('आईडी') को अजीब लग रहा है अगर केवल पहले तत्व की आईडी लौटाएगा। – z33m

8

jQuery not() समारोह ऐसा कर सकते हैं।

sale_wrap की id साथ div को छोड़कर सभी div के चयन करने के लिए:

$('div').not('#sale_wrap') 

फिर आप each() साथ divs से अधिक पाश।

एक उदाहरण के रूप:

#HTML 
<p id="1">Some text in paragraph 1</p> 
<p id="2">Some text in paragraph 2</p> 
<p id="3">Some text in paragraph 3</p> 

#JS 
# turn background to blue for all 'p' except p with id=2 
$('p').not('#2').each(function() { 
    $(this).css('background-color', 'blue'); 
}); 

चेक बाहर this example on JsFiddle

1

if($('div').not('#sale_wrap')) 
{ 
    t_balance; 
} 
else 
{ 
    var sale = t_balance*((100-window.discount_p)/100); 
    t_balance = sale; 
} 
+0

'$ (' div ')। नहीं (' # sale_wrap ')' एक jQuery तत्व लौटाएगा जिसमें सभी 'div' तत्व होंगे जिनमें 'sales_wrap' की आईडी नहीं है। यह एक विशिष्ट div के लिए एक सशर्त जांच नहीं है, इसलिए 'if' कथन की कोई आवश्यकता नहीं है। 'Sales_wrap' के अलावा किसी आईडी के साथ मार्कअप में कोई div है, तो यह 'if' कथन हमेशा 'सत्य' के लिए eval होगा। –

0

वैकल्पिक रूप से उपयोग करके देखें:

$('div[id != "sale_wrap"]') 
1

बस थोड़ा और अधिक जानकारी जोड़ने के लिए। एक इसी प्रकार अनेक not selector उपयोग कर सकते हैं:

$("div:not(#sale_wrap):not(.sale_class)"); 

या

$("div:not(#sale_wrap, .sale_class)"); 

या

$("div").not('#sale_wrap, .sale_class'); 
संबंधित मुद्दे