2011-09-21 6 views
11

मैं jquery 1.5 और html4 मानक का उपयोग कर रहा हूं।
मैं कस्टम सेट करने के लिए गुण जो मैं जावास्क्रिप्ट चर द्वारा प्राप्त कोशिश कर रहा हूँ, लेकिन यह up.code नमूना की स्थापना नहीं कर रहा है:जेएस चर के उपयोग से jQuery एटीआर() फ़ंक्शन द्वारा कस्टम विशेषता सेट करना संभव है

var attname="list1"; this is changed on every call of the function where it is defined.  
var attvalue="b,c,d"; this also changed. 
jQuery('#div1').attr({attname:attvalue}); 

लेकिन यह स्वयं स्ट्रिंग चर के रूप में नहीं बल्कि attname का इलाज। डेटा(), prop() का उपयोग करने जैसे अन्य विकल्प हैं, लेकिन वे HTML5 और jquery 1.6 में समर्थित हैं जो इस समय मेरे लिए संभव नहीं है। दूसरी समस्या यह है कि डेटा को सर्वर के किनारे सिंक और इस्तेमाल करने के लिए सेट नहीं किया जा सकता है क्लाइंट साइड पर jquery डेटा()। क्योंकि वे वाक्य रचनात्मक रूप से भिन्न हैं। यदि कोई अन्य तरीका है तो कृपया धन्यवाद का सुझाव दें।

+0

** karim79 ** संपादित करने के लिए धन्यवाद @Sedat धन्यवाद जो मैं बना रहा था वाक्यविन्यास त्रुटि को इंगित करने के लिए। ** ब्रोग्रामर **, ** उस्मान **, ** एंडी ** सभी इनपुट प्रदान करने के लिए धन्यवाद सभी एक या दूसरे तरीके से सही थे। – rain

उत्तर

20

मुझे लगता है कि आप इस

jQuery('#div').attr(attname,attvalue); 
2
<div data-test="lala">asdf</div> 

alert($('div').data('test')); 
var t = 'data-test2'; 
var v = 'hiho'; 
$('div').attr(t,v); 
alert($('div').data('test2')); 
alert($('div').attr('data-test2')); 

मेरे लिए यह सब काम करता है का उपयोग करना चाहिए: http://jsfiddle.net/r7uQ8/ jQuery पर परीक्षण किया गया 1.4.4

+1

बहुत यकीन है कि अगर आप अपना प्रश्न पढ़ते हैं तो वह डेटा विशेषताओं का उपयोग नहीं करना चाहता है। – daryl

+0

@ ब्रोग्रामर: एचएम मैं इसे इस तरह समझ गया, जिसका मतलब था कि वह डेटा का उपयोग नहीं कर सकता क्योंकि उसने सोचा था कि वे केवल jquery 1.6 में काम करते हैं। इसलिए मैंने बताया कि वे 1.4.4 में भी काम करते हैं। और उनका उपयोग करके मेरी राय में अधिक सुरुचिपूर्ण होगा। – Andy

0

स्क्वायर ब्रैकेट अंकन अपने दोस्त है:

var attname = "haha"; 
jQuery('#div')[0][attname] = "foo"; 
alert(jQuery('#div')[0][attname]); 

http://jsfiddle.net/KJBHq/

5

हाँ आप किसी भी विशेषता आप चाहते हैं जोड़ सकते हैं, बस सावधान रहना:

$('#foobar').attr('foo','bar'); 

http://jsfiddle.net/each/rnnfk/ - इस डेमो

10

हाँ की जाँच करें, लेकिन data- उपसर्ग का उपयोग करने से पहले टकराव से बचने के लिए

$('elm').attr('data-'+attname,attvalue); 

data- उपसर्ग का उपयोग करने के लिए HTML5 की आवश्यकता नहीं है।

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