<img src="images/butAdd.png" onclick="addField(1,1);" />
<div id="divField"></div>
<script type="text/javascript">
function addField(count, type) {
var bid = document.getElementById("bid").value;
$("#divField").append("<a href='#' onClick='javascript:removeField(\"#bow" + bid + "\"); return false;'><img src='images/closeSmall.png' /></a>");
}
function removeField(bid) {
$(bid).remove();
}
</script>
考虑这个在Firefox中运行良好的Javascript代码,但不能在Internet Explorer中运行。
函数addField()
有效,但removeField()
没有。
关于为什么这不起作用或任何变通方法的任何想法?
答案 0 :(得分:3)
试试这个。
function addField(count, type) {
$("#divField").append("<a href='#' onClick='javascript:removeField(); return false;'><img src='images/closeSmall.png' /></a>");
}
function removeField() {
$("#bid").remove();
}
答案 1 :(得分:3)
onclick事件不应该在代码前面有'javascript:'。只有在使用'href ='来放置JS代码时才应该使用这样的字符串。
答案 2 :(得分:2)
我认为这与称为“出价”的变量有关。只有在调用addField()并且它是该方法的本地值时,才会分配变量的值。
在removeField()中,'bid'的值未定义,这就是它无效的原因。
尝试像这样更改removeField()
function removeField() {
var bid = document.getElementById("bid").value;
$(bid).remove();
}
答案 3 :(得分:0)
您的addFiled可能如下所示:
$("<a href='#'><img src='images/closeSmall.png' /></a>").appendTo("#divField")
.click(function() {
$("#bid").remove();
})
答案 4 :(得分:0)
尝试改变:
var bid = document.getElementById("bid").value;
到
var bid = $("#bid").val();
我认为IE使用.value vs firefox
的方式有一个怪癖