尝试以编程方式在表格中添加链接。
$("#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>
明白我的意思?无论如何,有没有办法解决这个问题?
答案 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
}
值得注意的是,使用增量id
或class
属性是维护的巨大痛苦,并将阻碍未来的发展。更好的方法是使用类和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}引用字符串内的反斜杠:
"\"";
'\'';