Is there a better way to concatenate strings that have “‘s (such as HTML tag attribute definitions) in jQuery than escaping the quote?
Escapy Example:
$(this).prepend("<label for=\""+$(this).attr("id")+"\">"+"a"+"</label>");
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
You can use the object method of creation (
$(html, props)), like this:This has the advantage of calling
.text()internally, taking care of any encoding issues. Also, if you’re doing this a lot, it’ll be faster, since the HTML fragment is consistent and cached, so a clone of the node is used, rather than turning a string into a document fragment each time. The more elements like this you’re creating, the faster it is over the string method. For the same caching reasons, the bigger the element (up to a 512 char string) the bigger the gains.