如何使用append jQuery传递“'”

时间:2014-01-16 11:18:41

标签: jquery append

嗨朋友我正在做一件简单的事情,只需点击问题就可以在我的输入框中添加输入框我在这行中使用placeholder="Enter Friend's Email ID"这个单词"朋友""在附加plz检查我的代码后,或者您可以查看fiddle here

,并未显示其错过'

HTML

<table width="100%" cellspacing="0" cellpadding="0" border="0" id="emailTable">
            <tbody>
            <tr>
                <td align="center" colspan="2">
                    <strong>Share this greeting with your friend</strong>
                </td>
            </tr>
            <tr>
                <td width="417" align="right">
                    <input type="text" placeholder="Enter Friend's Email ID" class="mail" id="SendMail" name="SendMail">
                </td>
                <td width="156">  <div class="addRow">Add more Recipients</div></td>
            </tr>
          </tbody>
        </table>

SCRIPT

$(document).ready(function(e) {
    var row = "'"
    alert(row)
   $('.addRow').click(function(){
       $('#emailTable').append("<tr><td  align='right'><input type='text' placeholder='Enter Friends Email ID"+row+"s' class='mail' id='SendMail' name='SendMail'></td><td></td></tr>")
       })
});

3 个答案:

答案 0 :(得分:3)

你必须像这样逃避:

placeholder='Enter Friends Email ID\'s'

这样你就不需要行var

因为上面的代码没有做到这一点(阅读评论): 编辑:用双引号替换单词

$('#emailTable').append("<tr><td  align=\"right\"><input type=\"text\" placeholder=\"Enter Friends Email ID's\" class=\"mail\" id=\"SendMail\" name=\"SendMail\"></td><td></td></tr>")

答案 1 :(得分:1)

您可以将代码更改为此代码,它应该可以运行:

   $('.addRow').click(function(){
       $('#emailTable tbody').append("<tr><td  align='right'><input type='text' placeholder=\"Enter Friend's Email ID\" class='mail' id='SendMail' name='SendMail'></td><td></td></tr>");
   });

请注意,placehoder现在使用转义(\")双引号,因此内部的单引号不会提前关闭它。

小提琴 - http://jsfiddle.net/infernalbadger/4YVbB/3/

我还更改了文本以匹配HTML中的内容(输入朋友的电子邮件ID)

答案 2 :(得分:0)

您的代码行

  $('#emailTable').append(
  "<tr><td  align='right'><input type='text' placeholder='Enter Friends Email ID"
   + row + "s' class='mail' id='SendMail' name='SendMail'></td><td></td></tr>");

将分成3个翻译步骤。

  1. stringParam = "<tr><td align='right'><input type='text' placeholder='Enter Friends Email ID" <ul> <li>row + "s' class='mail' id='SendMail' name='SendMail'></td><td></td></tr>";
  2. table = $('#emailTable');
  3. table.append(stringParam);&lt; - 这里jquery抛出异常。
  4. 在第1步中,stringParam变为无效的html字符串。但无论如何它都是一个字符串,因此解释器没有问题。

    在第3步中存在问题,因为stringParam包含无效的html。

    想想模板应该做的伎俩。 http://sideroad.secret.jp/plugins/jQueryRender/ 因此,您可以编写纯HTML,并自动转义配额。这样你就是元类型保存。