js对话框弹出问题

tcrct 2008-02-12 10:27:16
function createTags(){
var li = document.createElement("li");
var a = document.createElement("a");
var len = document.getElementsByTagName("a").length;
a.id = "a"+len;
a.innerText = "new tag";
a.onclick= "addTags(this)";
a.ondbclick = "removeTags(this)";
a.href="javascript:void(0)";
li.appendChild(a);
document.getElementById("tagDiv").appendChild(li);
}

function removeTags(obj){
var aid = obj.id;
alert(document.getElementById(aid));
}


这里弹出对话框,应该是弹出一个[object]才对的,但是这里弹出的对话框是javascript:void(0),我试过将a.href这段话删了,还是不能,请问这是为什么呢?如何解决这个问题.谢谢
...全文
94 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yixianggao 2008-02-12
  • 打赏
  • 举报
回复
考虑到兼容性,更新一下,IE6sp1,FF2测试可用!

L@_@K
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
<meta name="generator" content="editplus" />
<meta name="author" content="Gao YiXiang" />
<meta name="email" content="yixianggao@126.com" />
<meta name="keywords" content="javascript dhtml dom" />
<meta name="description" content="I love web development." />
</head>
<body>
<div id="tagDiv"></div>
<script type="text/javascript">
<!--
function createTags()
{
var li = document.createElement("li");
var a = document.createElement("a");
var len = document.getElementsByTagName("a").length;
a.id = "a"+len;
a.innerHTML = "new tag"; // innerText 在 FF 下无效!
// Error!
//a.onclick = "addTags(this)";
// Correct!
a.ondblclick = function()
{
removeTags(this);
};
a.href = "javascript:void(0)";
li.appendChild(a);
document.getElementById("tagDiv").appendChild(li);
}

function removeTags(obj)
{
alert(obj.id);
alert(typeof obj);

var oDiv = document.getElementById("tagDiv");
alert(typeof oDiv);
}

createTags();
//-->
</script>
</body>
</html>
yixianggao 2008-02-12
  • 打赏
  • 举报
回复
alert(document.getElementById(aid));
// 这种写法本身就有问题,要获取类型须使用typeof关键字!
// 若直接调用时会调用对象自身的toString方法,IE下一般返回[object],而a是个特例,
// IE下a被重写了toString方法,返回的是href属性值!因此才会看到javascript:void(0)

L@_@K
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
<meta name="generator" content="editplus" />
<meta name="author" content="Gao YiXiang" />
<meta name="email" content="yixianggao@126.com" />
<meta name="keywords" content="javascript dhtml dom" />
<meta name="description" content="I love web development." />
</head>
<body>
<div id="tagDiv" class=""></div>
<script type="text/javascript">
<!--
function createTags()
{
var li = document.createElement("li");
var a = document.createElement("a");
var len = document.getElementsByTagName("a").length;
a.id = "a"+len;
a.innerText = "new tag";
// Error!
//a.onclick = "addTags(this)";
// Correct!
a.ondblclick = function()
{
removeTags(this);
};
a.href = "javascript:void(0)";
li.appendChild(a);
document.getElementById("tagDiv").appendChild(li);
}

function removeTags(obj)
{
alert(obj.id);
alert(typeof obj);

var oDiv = document.getElementById("tagDiv");
alert(typeof oDiv);
}

createTags();
//-->
</script>
</body>
</html>
daniel_kaka 2008-02-12
  • 打赏
  • 举报
回复
这个要用事件拦截,修改<a href=''>的默认行为,改为a.href="javascript:addTags(this);";
jiewenxu 2008-02-12
  • 打赏
  • 举报
回复
直接alert(obj)就可以了
干嘛还要先去ID,再重新通过此ID获得原来的对象呢?
原型名称:优质可视化大屏模板图表组件RP文件 软件版本:Axure9(支持10、11) 文件大小:28M 文件页数:16页 原型简介: 【1】数据可视化设计组件包含:常用组件、图标元素、菜单面板、数字字体;常用组件包含:常用按钮、动态公告栏、常用输入框、常用搜索框、时间轴组件、标签列表、下拉选择框、按钮选项组、分页组件、轮播图组件、视频播放器、表格组件、日期天气组件等;图标元素包含近百个图标元素可用于可视化设计使用;菜单面板包含多套大屏中间页菜单组合案例;数字字体包含多套不同风格字体的数字组件。 【2】数据可视化图表组件包含:常用图表、美化图表、图表动效、图表尺寸、数值展示、排行展示、地图组件、图表色板;常用图表包含:柱状图、条形图、圆环图、折线图、面积图、堆叠图等;美化图表包含各种立体图表、渐变图表如立体柱状图、立体圆柱图、渐变柱状图、渐变曲线图、渐变面积图、对比图等;动效图表提供动态交互案例;图表尺寸包含大小中各类尺寸图表案例;数值展示为可视化设计提供更多数值的设计案例;排行展示包含近20中排行列表组件的案例;如果有地图设计需要可以使用到地图组件;图表色板提供了可视化设计中专业的单色/渐变色组件。

87,995

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧