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);
}
当锚点标记被点击时,我无法调用删除功能...我想要改变什么来实现这个功能?javascript:定位标记问题
答
尝试
typeElem.onclick = function(){
delete(position);
};
,并更好地使用像deletePosition更有意义的名称或类似的东西
答
尝试改变:
typeElem.setAttribute('onclick',"delete(position)");
到
typeElem.setAttribute('onclick',"delete(" + position + ")");
答
IE处理setAttribute
与其他浏览器有所不同,特别是事件处理程序属性。出于这个原因,为了更整洁的代码,避免使用setAttribute
更容易,其中DOM属性已经存在,通常在浏览器中统一工作。另外,避免使用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);
}
感谢汤姆和拉胡尔·汤姆的答案完全吻合我的recquirement – Raam 2010-06-16 13:11:27
为什么我们可以传递一个值这样的,而不是基本的方法是什么?如果我想传递一个值,这样意味着/ *位置= 1 + “RAAM”; * /(postion = 1raam)..怎么可以这个?谢谢。 – Raam 2010-06-21 13:11:03
我们没有像这样传递一个值,我们正在获取变量的字面值并将其赋值给属性函数调用,如果这是有道理的话。很难解释,也许别人可以做得更好。 – 2010-06-22 00:05:16