2013-05-07 3 views
52

यह काम करता है:क्या jQuery.attr() फ़ंक्शन का उपयोग करके एकाधिक डेटा विशेषताओं को सेट करना संभव है?

$(myObj).attr("data-test-1", num1); 
$(myObj).attr("data-test-2", num2); 

लेकिन यह नहीं करता है:

$(myObj).attr({ 
    data-test-1: num1, 
    data-test-2: num2 
}); 

मैं यहाँ वास्तव में कुछ स्पष्ट याद आ रही है?

+1

आपका दूसरा उदाहरण वाक्यविन्यास त्रुटि उत्पन्न करता है। – Matt

+5

आप ऑब्जेक्ट कुंजियों में डैश का उपयोग नहीं कर सकते हैं जब तक कि आप उन्हें '{" डेटा-टेस्ट -1 ":" डेटा "} ' – m90

उत्तर

98

ज़रूर, इस तरह:

एक बार

में कई गुण स्थापना वैकल्पिक विशेषता बदल सकते हैं और एक ही समय में शीर्षक विशेषता जोड़ने के लिए:

$(myObj).attr({"data-test-1": num1, "data-test-2": num2}); 
.attr() डॉक्स राज्य की तरह

समय, एक सादा जावास्क्रिप्ट ऑब्जेक्ट का उपयोग कर विधि में नामों और मानों के दोनों सेटों को एक बार में पास करें। वस्तु में प्रत्येक कुंजी-मान पेयर कहते हैं या एक विशेषता को संशोधित करता है:

$('#greatphoto').attr({ 
    alt: 'Beijing Brush Seller', 
    title: 'photo by Kelly Clark' 
}); 

जब एक से अधिक विशेषताओं की स्थापना, उद्धरण के आसपास विशेषता नाम वैकल्पिक हैं।

+7

" जैसे स्ट्रिंग के रूप में सीमित नहीं करते हैं "विशेषता नामों के चारों ओर उद्धरण वैकल्पिक हैं" केवल ऊंट पर लागू होता है गुणित गुण, ओपी चाहता है डैश का उपयोग करने के लिए, इस मामले में उद्धरण अनिवार्य होना चाहिए -> 'अप्रत्याशित टोकन -' – m90

+0

@ m90 - यह सीधे jQuery एपीआई से लिया जाता है, यह मेरी टिप्पणी नहीं है। – j08691

+4

मुझे इसके बारे में पता है लेकिन डैश ओपी की समस्याओं का कारण बनता है इसलिए मुझे लगता है कि इसे जोड़ना चाहिए। – m90

4

हाँ कई विशेषताओं को सेट करना संभव है, बस सरल ऑब्जेक्ट शाब्दिक वाक्यविन्यास का उपयोग करें। उदाहरण:

$('#my_image').attr({ 
    alt: 'Beijing Brush Seller', 
    title: 'photo by Kelly Clark' 
}); 

अधिक attr विधि के बारे में जानकारी पाया जा सकता है here

+2

[जेएसओएन ऑब्जेक्ट शाब्दिक वाक्यविन्यास के समान नहीं है] (http://stackoverflow.com/questions/2904131/what-is-the-difference-between-json-and-object-literal-notation)। आप जो भी उपयोग कर रहे हैं वह बाद वाला है। – Matt

+0

मुझे खेद है, मैंने इसे ठीक कर दिया है :) – Goran

संबंधित मुद्दे