2010-02-01 9 views
67

के बजाय मैं वर्तमान jQuery उपयोग कर रहा हूँ आईडी जोड़ें:jQuery - कक्षा

$(function() { 
    $('span .breadcrumb').each(function(){ 
     $('#nav').addClass($(this).text()); 
     $('#container').addClass($(this).text()); 
     $('.stretch_footer').addClass($(this).text()) 
     $('#footer').addClass($(this).text()); 
    }); 
}); 

यह पाठ पृष्ठ पर 4 तत्वों को ब्रेडक्रम्ब में आयोजित लागू होता है, मुझे वहाँ पर पृष्ठ के लिए विशेष रूप से शैली के लिए अनुमति ।

मैं कक्षा के बजाय एक आईडी जोड़ने का प्रयास करना चाहता हूं, मैं इसे कैसे प्राप्त कर सकता हूं?

$('element').attr('id', 'value'); 

तो यह हो जाता है;:

+0

में यह कर एक आईडी अद्वितीय होना चाहिए मान्य एक्सएचटीएमएल किया जाना है। एक आईडी को कड़े नियमों से मेल खाना चाहिए, उदाहरण के लिए, कोई रिक्त स्थान, अक्षर या _ से शुरू नहीं होना चाहिए, केवल अक्षरों, संख्याओं या अन्य वर्णों की सीमित संख्या होनी चाहिए। –

+7

@ पीटर: विकिपीडिया के लिए एक लिंक जोड़ना थोड़ा अनावश्यक लगता है। – nickf

उत्तर

167

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

$(function() { 
    $('span .breadcrumb').each(function(){ 
     $('#nav').attr('id', $(this).text()); 
     $('#container').attr('id', $(this).text()); 
     $('.stretch_footer').attr('id', $(this).text()) 
     $('#footer').attr('id', $(this).text()); 
    }); 
}); 

तो तुम बदल रहे हैं/तीन तत्वों से आईडी अधिलेखित और एक तत्व को एक आईडी जोड़ने। आप आप की जरूरत के अनुसार संशोधित कर सकते हैं ...

+1

कैशिंग के बारे में कैसे? "यह" की 4 अलग-अलग jQuery वस्तुओं को बनाने के बजाय। var text = $ (this) .text(); – PetersenDidIt

+0

@petersendidt: सहमत हुए, मैंने अपने जवाब में कहा कि उसे जरूरतों के अनुसार संशोधित करने की जरूरत है। – Sarfraz

+0

और भी बेहतर: '$ ('# nav, #container, .stretch_footer, #footer')। Attr ('id', $ (this) .text());' .. यह नहीं कि यहां एक आईडी का उपयोग करना अच्छा है विचार। – nickf

18

ध्यान रखें कि यह किसी भी आईडी उस तत्व पहले से ही है अधिलेखित कर देता है:

$(".element").attr("id","SomeID"); 

कारण है कि addClass मौजूद है एक तत्व कई वर्गों हो सकता है क्योंकि ऐसा है, आप पहले से सेट कक्षाओं को जरूरी नहीं लेना चाहते हैं। लेकिन अधिकांश विशेषताओं के साथ, किसी भी समय दिए गए केवल एक मूल्य की अनुमति है।

4

आप के बजाय की जगह यह

कब्जा वर्तमान आईडी पहले, फिर अपने नए आईडी संलग्न 'आईडी के लिए जोड़' करना चाहते हैं। विशेष रूप से ट्विटर बूटस्ट्रैप के लिए उपयोगी जो उनके रूपों पर इनपुट राज्यों का उपयोग करता है।

new_id = '{{old_id}} inputSuccess'; 
    old_id = that.attr('id'); 
    that.attr('id', new_id.replace(/{{old_id}}/ig,old_id)); 

यदि आप नहीं करते हैं - तो आप पिछले सेटों को खो देंगे।

hth,

3

इम coffeescript

booking_module_time_clock_convert_id =() -> 
    if $('.booking_module_time_clock').length 
    idnumber = 1 
    for a in $('.booking_module_time_clock') 
     elementID = $(a).attr("id") 
     $(a).attr('id', "#{elementID}_#{idnumber}") 
     idnumber++ 
संबंधित मुद्दे