Pasar un parámetro para funcionar con comillas simples

¿Cómo paso un parámetro a una function de JavaScript con ' incluido

 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)); 

La function javascript no se está ejecutando ya que el nombre 'Lauren O'Donald' contiene comillas simples.

¿Cómo puedo agregar un parámetro con ' y preparar html dynamic para que funcione?

Aquí está el código dynamic para generar

  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 )); }); 

Puede escaping de comillas / caracteres anteponiendo \ a ello:

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

Usando una cadena dinámica:

 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\' 

Puedes escaping utilizando \ :

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

Sin embargo, como ha labeldo esta pregunta con jQuery, una mejor solución es conectar un evento al elemento y usar los attributes data-* para almacenar la información relevante, lo que evitará el uso de attributes feos en onX Prueba esto:

 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); 

Escribe tu propia function para devolver una cadena escapada. Manifestación

Pase su cadena como argumento a esta function y obtendrá la cadena escapada. También puedes agregar más personajes a la list de locking si quieres escaping de algunos personajes más

 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; } 

intenta algo como esto

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