0

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

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

注意 ...'tableSelect('p"+col+"')'>... 是如何用单引号括起来的,但它的参数也必须用引号括起来。因此,当它运行时,它会tableSelect(像这样切断并p1)在其他地方抛出或抛出任何数字。

这是它在控制台中的样子:

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

明白了吗?无论如何,有没有办法解决这个问题?

4

4 回答 4

4

使用 jQuery 构建元素有一种更简洁的方法:

$("#p"+col).append($("<a>", {
  href: '#',
  id: 'tablep' + col,
  "class": 'ui-link-inherit',
  click: function() { tableSelect('p' + col); }
}));
于 2013-01-02T19:23:03.283 回答
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 遍历来查找所需的特定元素。

于 2013-01-02T19:22:31.987 回答
1

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

var newAnchor = $('<a>')
    .attr('id', 'tablep' + col)
    .addClass('ui-link-inherit')
    .click(function () {
        tableSelect('p' +col);
    })
    .appendTo($("#p"+col));
于 2013-01-02T19:25:20.743 回答
0

您应该使用反斜杠转义字符串内的引号:

"\"";

'\'';
于 2013-01-02T19:22:03.727 回答