参数内的双引号

时间:2013-01-02 19:19:39

标签: javascript jquery html5 quotations

尝试以编程方式在表格中添加链接。

$("#p"+col).append("<a href='#' id='tablep"+col+"' class='ui-link-inherit' onClick='tableSelect('p"+col+"')'></a>");

请注意......'tableSelect('p“+ col +”')'&gt; ...是单引号,但其参数也必须在引号中。因此,当它运行时,会像这样切断tableSelect(并抛出p1)或其他任何数字。

以下是控制台中的内容:

<a id="tablep1" class="ui-link-inherit" p1')'="" onclick="tableSelect(" href="#"></a>

明白我的意思?无论如何,有没有办法解决这个问题?

4 个答案:

答案 0 :(得分:4)

使用jQuery构建元素有一种更清晰的方法:

$("#p"+col).append($("<a>", {
  href: '#',
  id: 'tablep' + col,
  "class": 'ui-link-inherit',
  click: function() { tableSelect('p' + col); }
}));

答案 1 :(得分:3)

onclick属性是一种非常过时的附加事件的方法。当您使用jQuery插入HTML时,为什么不使用它来绑定您的事件?试试这个:

var $a = $("<a href='#' id='tablep" + col + "' class='ui-link-inherit'></a>").click(function() {
    tableSelect(this);
});
$("#p" + col).append($a);

function tableSelect(obj) {
    // do something with the clicked object
}

值得注意的是,使用增量idclass属性是维护的巨大痛苦,并将阻碍未来的发展。更好的方法是使用类和DOM遍历来查找所需的特定元素。

答案 2 :(得分:1)

您正在使用jQuery,不要通过字符串连接来构建HTML。

var newAnchor = $('<a>')
    .attr('id', 'tablep' + col)
    .addClass('ui-link-inherit')
    .click(function () {
        tableSelect('p' +col);
    })
    .appendTo($("#p"+col));

答案 3 :(得分:0)

你应该{2}引用字符串内的反斜杠:

"\"";

'\'';