javascript:锚标记问题

时间:2010-06-16 12:15:08

标签: javascript

function main(){

var delImage=document.createElement("img"); 
delImage.setAttribute("alt","Edit"); 
delImage.setAttribute("src","drop.png");

var position=newRow.rowIndex;
var typeElem=document.createElement("a");
typeElem.setAttribute("name","delete");  
typeElem.setAttribute("href","#");
typeElem.appendChild(delImage);
typeElem.setAttribute('onclick',"delete(position)");

newRow.insertCell(lastCell).appendChild(typeElem);

}

function delete(pos){
alert(pos);
}

单击锚标签时无法调用删除功能...我想改变什么来实现这一目标?

3 个答案:

答案 0 :(得分:0)

尝试

typeElem.onclick = function(){
    delete(position);
};

并且最好使用更有意义的名称,例如deletePosition或类似的东西

答案 1 :(得分:0)

尝试更改:

typeElem.setAttribute('onclick',"delete(position)");

typeElem.setAttribute('onclick',"delete(" + position + ")");

答案 2 :(得分:0)

IE处理setAttribute与其他浏览器不同,尤其是事件处理程序属性。出于这个原因并且为了更简单的代码,更容易避免使用已存在DOM属性的setAttribute,这通常在浏览器中统一工作。另外,请避免在JavaScript中使用以运算符命名的函数。特别是在这种情况下,我将重命名delete()函数。

function main() {
    var delImage = document.createElement("img");
    delImage.alt = "Edit";
    delImage.src = "drop.png";

    var position = newRow.rowIndex;
    var typeElem = document.createElement("a");
    typeElem.name = "delete";
    typeElem.href = "#";
    typeElem.appendChild(delImage);
    typeElem.onclick = function() {
        doDelete(position);
    };
    newRow.insertCell(lastCell).appendChild(typeElem);
    typeElem = null;
}

function doDelete(pos){
    alert(pos);
}