2014-04-10 6 views
6

मुझे अनकही सिंटेक्स त्रुटि मिल रही है: मेरी जावास्क्रिप्ट में अनपेक्षित स्ट्रिंग त्रुटि और मैं ईमानदारी से यह नहीं समझ सकता कि कोड में क्या गलत है। मैंने इसी तरह के प्रश्नों को देखा है, लेकिन मैं समाधान खोजने में असमर्थ हूं। नीचे एक तारांकन के साथ हाइलाइट लाइन में त्रुटि आ रही है।Uncaught SyntaxError: मेरी जावास्क्रिप्ट में अनपेक्षित स्ट्रिंग

$("#items1").change(function() { 
    if ($(this).data('options') === undefined) { 
     $(this).data('options', $('#items2 option').clone()); 
    } 
    var checkval = $(this).val(); 
/* this line: */ var options = $(this).data('options').filter('[value='"+ checkval +"']'); 
    $('#items2').html(options); 
}); 

कोड मैं checkval के आसपास अतिरिक्त उद्धरण एक और त्रुटि से छुटकारा पाने में जोड़े गए Use jQuery to change a second select list based on the first select list option

लिया जाता है, यह समस्या हो सकती है, लेकिन अगर मैं इसे बदल, अन्य त्रुटि रिटर्न ।

+1

सिंटैक्स हाइलाइटिंग को देखें। 'चेकवॉल' एक स्ट्रिंग की तरह दिखता है, नहीं? –

उत्तर

2

यह होना चाहिए:

var options = $(this).data('options').filter('[value="' + checkval + '"]'); 

दोहरे उद्धरण चिह्नों एकल उद्धरण के अंदर होना चाहिए।

+0

आह ने इसे ठीक किया, धन्यवाद! – Mohd

+0

@ user3463538 कोई समस्या नहीं :) –

+0

@ user3463538 यदि उत्तर आपको उत्तर के रूप में स्वीकार करने में मदद करता है। –

8

समस्या यह है:

'[value=' "+ checkval +"']' 
^  ^^   ^^ 
1  2 3   45 

1 में, आप एक स्ट्रिंग शुरू कर रहे हैं; 2 पर, आप इसे समाप्त कर रहे हैं। इसका मतलब है कि जब हम 3 तक पहुंचते हैं, तो डबल कोट्स का उपयोग करके एक नई स्ट्रिंग की शुरुआत, यह एक अप्रत्याशित स्ट्रिंग है।

आप शायद चाहते हैं:

'[value="' + checkval + '"]' 
^  ^^    ^^^
1  23    45 6 

1 में, हम स्ट्रिंग शुरू करते हैं। 2 स्ट्रिंग के भीतर सिर्फ " है, यह इसे समाप्त नहीं करता है। 3 इसे समाप्त करता है, फिर हम checkval जोड़ते हैं, फिर हम " (0) के साथ ] और फिर स्ट्रिंग (6) के अंत के साथ एक नई स्ट्रिंग (4) शुरू करते हैं।

2
'[value=' "+ checkval +"']' 

होना चाहिए

'[value="' + checkval + '"]' 

आप गलत जगह पर कोटेशन है, तो डबल उद्धरण चिह्न अपने स्ट्रिंग में शामिल नहीं किया जा रहा है।

2

बैकस्लैश के साथ उद्धरणों से बचने के लिए सुनिश्चित करें (आपको इस बैकस्लैश से भी बचना है, क्योंकि बैकस्लाश के तारों के अंदर एक विशेष अर्थ है) -> उद्धरणों के सामने \\ का उपयोग करें। लेकिन ध्यान दें कि प्रत्येक मामले में कोटेशन की आवश्यकता नहीं है।

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