javascript
  • jquery
  • 2013-10-16 7 views 12 likes 
    12

    साथ कार्य करने के लिए एक पैरामीटर पासिंग मैं कैसे पारित करते ' के साथ एक जावास्क्रिप्ट समारोह के लिए एक पैरामीटर शामिलएकल उद्धरण

    var name ="Lauren O'Donald"; 
    
    var htmlAnch='<a onclick="javascript:selectEmployee(1100,"'+name+'");return false;" 
           href="javascript:void(0);">O'Donald, Lauren</a>'; 
    
    $(document).append($(htmlAnch)); 
    

    जावास्क्रिप्ट समारोह को क्रियान्वित नहीं किया गया है के बाद से नाम 'Lauren O'Donald' एकल उद्धरण शामिल हैं।

    मैं ' के साथ पैरामीटर कैसे जोड़ सकता हूं और इसे काम करने के लिए गतिशील HTML तैयार कर सकता हूं?

    यहाँ

    var rows = new StringBuffer(); 
    
    $(data).each(function(index) { 
         rows.append(String.format('<tr><td><a href="No.aspx" 
           onclick="javascript:selectEmployee({3},\"{1} {2}\");return 
           false;">{0}</a></td></tr>', 
           String.format("{0}, {1}", this.Surname, this.FirstName), 
           this.Surname, 
           this.FirstName, 
           this.Id 
          )); 
        }); 
    
    +0

    एक बैकस्लैश उपयोग से बचने के लिए चाहते हैं Blocklist को अधिक वर्ण जोड़ सकते हैं "\" सही तरीका दिखा के लिए एकल उद्धरण – Raptor

    उत्तर

    25

    आप इसे करने के लिए \ prepending द्वारा उद्धरण/पात्रों बच सकते हैं

    var foo = "bar with 'quotes'"; 
    var string = 'my string with "double quotes" and ' + foo.replace(/'/g, "\\'"); 
    //my string with "double quotes" and bar with \'quotes\' 
    
    +0

    कोड अपडेट किया गया। यह गतिशील रूप से – Billa

    +0

    @ बिल्ला मेरे संपादन की जांच करता है। – h2ooooooo

    +0

    ग्रेट। यह काम करता है :) – Billa

    4

    आप इसे बच सकते हैं उत्पन्न करने के लिए \ का उपयोग कर गतिशील कोड है:

    var htmlAnch='<a onclick="javascript:selectEmployee(1100,\'Lauren O\'Donald\');return false;" 
          href="javascript:void(0);">O\'Donald, Lauren</a>'; 
    

    आप jQuery के साथ इस सवाल टैग किया है हालांकि के रूप में, एक बेहतर समाधान ऊपर हुक करने के लिए है तत्व के लिए एक घटना और प्रासंगिक जानकारी को संग्रहीत करने के लिए data-* विशेषताओं का उपयोग करें, जो बदसूरत onX विशेषताओं के उपयोग से बचेंगी। इस प्रयास करें: एक गतिशील स्ट्रिंग का उपयोग करना

    var string = 'my string with "double quotes" and \'single quotes\''; 
    var string = "my string with 'single quotes' and \"double quotes\""; 
    //            ^   ^
    

    :

    var $htmlAnch = $('<a />' { 
        text: "O'Donald, Lauren" , 
        data-id: 1100, 
        data-name: "Lauren O'Donald" 
    }).click(function(e) { 
        e.preventDefault(); 
        selectEmployee($(this).data('id'), $(this).data('name')); 
    }); 
    
    $(document).append($htmlAnch); 
    
    +0

    +1 से बचने के लिए। – georg

    +0

    मैंने अपना कोड अपडेट किया जो गतिशील रूप से उत्पन्न करता है, और डेटा विशेषताओं का उपयोग नहीं करता है। कृपया इसे जांचें – Billa

    0

    इस

    var htmlAnch='<a onclick="javascript:selectEmployee(1100,\'Lauren O\'Donald\');return false;" href="javascript:void(0);">O\'Donald, Lauren</a>'; 
    
    की तरह कुछ कोशिश
    1

    लिखें एक बच निकलने वाली स्ट्रिंग को वापस करने के लिए अपना स्वयं का फ़ंक्शन। Demo

    इस स्ट्रिंग के लिए तर्क के रूप में अपनी स्ट्रिंग पास करें और आप स्ट्रिंग से बच जाएंगे। अगर आपको कुछ और पात्रों

    function remove_quotes(values1) 
    { 
         var values = values1.toString(); 
         var str = ""; 
         var blockList = ['"','\'','\\']; // This is the list of key words to be escaped 
         var flag = 0; 
         for(var i = 0;i<values.length;i++) 
         { 
          for(var j=0;j<blockList.length;j++) 
          { 
           if(values[i] == blockList[j]) 
           { 
            flag = 1; 
            break; 
           } 
          } 
          if(flag == 0) 
          str += values[i]; 
          else 
          { 
           str += '\\'; 
           str += values[i]; 
           flag = 0; 
          } 
         } 
         return str; 
    
        } 
    
    संबंधित मुद्दे