2015.3.7小练习(动态增加元素及表格,以及浏览器兼容问题)

最近在对之前理解的HTML/CSS/javaScript查漏补缺,真是学会了Jquery马上就开始反感用javascript写很多jquery一下子就可以实现的选择和操作。

今天是做了一个根本无界面美观性可言的实验part,乱七八糟大乱炖,只为练习功能。

动态增加元素

function addBtn() {
var textField = document.getElementById("main");
var input = document.createElement("input");
input.type = "button";
input.value = "我是动态的哟~";
textField.appendChild(input);
}
function creatA() {
var creatArea = document.getElementById("creatArea");
var a = document.createElement("a");
a.href = "http://www.baidu.com";
a.innerText = "百度一下,你就知道";
creatArea.appendChild(a);

}

动态创建表格,这里用到数组和JSON的概念;这里需要说明的是IE6,IE7是不支持table.appendChild("tr")指令的;在文章末尾会提到解决办法;

function createTable() {
   var data = { "淘宝": "http://www.taobao.com", "百度": "http://www.baidu.com", "新浪": "http://www.sina.com", "知乎": "http://www.zhihu.com" };
   var Area1 = document.getElementById("createArea");
   for (var key in data) {
       var value = data[key];
       var tr = document.createElement("tr");
       var td1 = document.createElement("td");
       td1.innerText = key;
       tr.appendChild(td1);

var td2 = document.createElement("td");
       td2.innerHTML = "<a href=‘" + value + "‘>" + value + "</a>";
       tr.appendChild(td2);
       Area1.appendChild(tr);
}
}

针对浏览器不兼容的问题,增加表格行列可以使用如下代码:

var tr=Area.insertRow(-1);//这里的-1指的是最后一行;只有FireFox 中需要加(-1),IE 中则不需要。

var td=tr.insertCell(-1);

而产生这种不兼容性的原因是因为IE6,IE7默认的Table标签使用方法是表头下还有一个<Tbody></Tbody>

当我们直接执行上面的未调整的代码时,内容也被执行了添加操作,所以不会报错,但插入的地方却是和<Tbody></Tbody>标签平行,也就是在tbody的外面;

这也就导致了不能看到结果。

所以另外一种解决办法就是在写表格标签时添加<Tbody></Tbody>,并在函数的末尾动态增加元素时准确指向Tbody就可以解决这个问题。

时间: 2024-10-17 03:45:37

2015.3.7小练习(动态增加元素及表格,以及浏览器兼容问题)的相关文章

动态增加,删除表格行并按照表格列排序

接着上一篇博文,解决上一篇博文最后遗留的瑕疵,同时,给表格列添加了排序功能. 解决掉的问题 1 乱码的问题 2 删除方法更加简便,省去获取父节点id的代码 3 点击第一行的add按钮后,下行table行变宽问题 <html> <head> <title>Table</title> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"&g

2015年可视化研究前沿动态

2015年可视化研究前沿动态 注:本文为作者最近所看文献的一点总结,可能比较片面,比较粗糙,也有可能存在错误,望相关领域的各大神们多加指点:-). 利用Web of Science,分析当前可视化研究前沿,热点,与动态,新型技术. 1.可视化分析 可视化分析作为信息可视化与科学可视化的副产物,通过可交互界面,集中在可视化推理的推进. 主要应用于海量数据关联分析,由于所涉及到的信息比较分散.数据结构有可能不统一,而且通常以人工分析为主,加上分析过程的非结构性和不确定性,所以不易形成固定的分析流程或

iOS 实现脉冲雷达以及动态增减元素 By Swift-感谢分享

Swift经过Xcode6 Beta4一版更新后,基本上已经可以作为生产工具了,虽然有一些地方和ObjC比起来要“落后”一些,但也无伤大雅.这里就用Xcode6 Beta4+iOS SDK 8.0开发,如果用ObjC的话,只需把某些语法和调用方式替换一下就可以了. 最终效果: 这效果是从MOV文件转成GIF的,而且CSDN不支持大于2M的图片上传,优酷地址 创建基本动画 这效果是从MOV文件转成GIF的,而且CSDN不支持大于2M的图片上传,优酷地址 创建一个Single View Applic

iOS 实现脉冲雷达以及动态增减元素 By Swift

开始之前 Swift经过Xcode6 Beta4一版更新后,基本上已经可以作为生产工具了,虽然有一些地方和ObjC比起来要"落后"一些,但也无伤大雅.这里就用Xcode6 Beta4+iOS SDK 8.0开发,如果用ObjC的话,只需把某些语法和调用方式替换一下就可以了. 最终效果: 这效果是从MOV文件转成GIF的,而且CSDN不支持大于2M的图片上传,优酷地址 创建基本动画 这效果是从MOV文件转成GIF的,而且CSDN不支持大于2M的图片上传,优酷地址 创建一个Single V

动态生成元素动作绑定,jquery 1.9如何实现

1.7后增加了 live()1.9后被移除了 网上说可以用 on() 代替 可以实际在动态生成元素上绑定动作,没效果,求解绝方法(用低版本的jQuery这种方法,求别说..) 答: 之前有老兄回答过类似这个问题,我把他的写法给你贴一下吧: 你应该使用 on 事件进行绑定,这样新插入的元素就可以触发点击事件了.http://api.jquery.com/on/ $(function(){ $("body").on("click", '.a', function(){

微信小程序动态生成保存二维码

起源:最近小程序需要涉及到一些推广方面的功能,所以要写一个动态生成二维码用户进行下载分享,写完之后受益良多,特此来分享一下: 一.微信小程序动态生成保存二维码 wxml: <canvas style="width: 350rpx;height: 350rpx;background:#f1f1f1;" canvas-id="mycanvas"/> js: // pages/qrcode/qrcode.js var QR = require("..

box-shadow并不会增加元素的实际占据空间

box-shadow并不会增加元素的实际占据空间:关于此属性的用法这里就不多做介绍了,具体可以参阅CSS3的box-shadow属性用法详解一章节.对元素引用此属性之后,元素在外观上是看起来体积变大了,其实并没有更多的占据空间.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content=&quo

objc runtime 动态增加属性-备用(?)

objective-c中,有类别可以在不修改源码的基础上增加方法:近排在看别人的开源代码时,发现还可以动态增加属性.而且是在运行时,太牛B了. 使用运行时库,必须要先引入 objc/runtime.h 可以使用的函数如下: OBJC_EXPORT void objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationPolicy policy) 这个函数 OBJC_EXPORT id objc_ge

Hadoop 2.6.3动态增加/删除DataNode节点

假设集群操作系统均为:CentOS 6.7 x64 Hadoop版本为:2.6.3 一.动态增加DataNode 1.准备新的DataNode节点机器,配置SSH互信,可以直接复制已有DataNode中.ssh目录中的authorized_keys和id_rsa 2.复制Hadoop运行目录.hdfs目录及tmp目录至新的DataNode 3.在新DataNode上启动hadoop ..sbin/hadoop-daemon.sh start datanode ..sbin/yarn-daemon