* @param {object | string} obj 一个标签元素,或者元素的id值
* @param {string} tag 外标签的名称,可以带上id值class值
*/
function setParent(obj,tag){
obj = typeof obj === "string" ? document.getElementById(obj) : obj
//判断obj是否为有效元素对象
if(obj &&obj.nodeType){
if(obj.nodeType !== 1){
alert("无效的元素对象!")
return false
}
}else{
alert("无效的元素对象!")
return false
}
//如果没有设置tag,或者省略了标签名称,则默认为div
tag = tag ? (/^(#|\.)/gim.test(tag) ? ("div"+tag) : tag) : "div"
var id = "",
cname = "",
len = tag.length,
i = 0,
tn = "",
isT = true,
str = "",
relTag = ""//用来保存标签
//获取id值,获取class值,这一部分参考zencoding的写法
while(i<len){
str = tag.charAt(i)
switch(str){
case "#"://id
id = tag.substring(i+1).match(/^[\w\-:\$]+/i)
id = id ? id[0] : ""
i += id.length + 1
isT = false
break
case "."://class
tn = tag.substring(i+1).match(/^[\w\-:\$]+/i)
tn = tn ? tn[0] : ""
i += tn.length + 1
cname += " " + tn
isT = false
break
default:
if(isT){
relTag += str
}
i++
}
}
//生成节点
tag = document.createElement(relTag)
tag.setAttribute("id",id)
tag.className = cname
//移动替换节点
tag.appendChild(obj.cloneNode(true))
obj.parentNode.replaceChild(tag,obj)
return obj
}
window.onload = function(){
//用法1:movediv为页面上的某个标签的id值,#my.base.case省略标签符号则默认标签为div
setParent("movediv","#my.base.case")
//用法2:可省略第二个参数值,默认外标签为div
setParent("movediv")
//用法3:movediv为页面上的某个标签的id值,h3#my.base.case表示外标签为h3,其id值为my,其class值为base case
setParent("movediv","h3#my.base.case")
//用法4:传入标签元素,其余用法类似上面的
setParent(document.getElementById("movediv"),"#my.base.case")
}
此函数的压缩版本如下(使用的是google的Closure Compiler):
function setParent2(b,a){if((b="string"===typeof b?document.getElementById(b):b)&&b.nodeType){if(1!==b.nodeType)return alert("\u65e0\u6548\u7684\u5143\u7d20\u5bf9\u8c61\uff01"),!1}else return alert("\u65e0\u6548\u7684\u5143\u7d20\u5bf9\u8c61\uff01"),!1for(var a=a?/^(#|\.)/gim.test(a)?"div"+a:a:"div",e="",f="",i=a.length,c=0,d="",d=!0,g="",h=""c<i)switch(g=a.charAt(c),g){case "#":e=(e=a.substring(c+1).match(/^[\w\-:\$]+/i))?e[0]:""c+=e.length+1d=!1breakcase ".":d=(d=a.substring(c+1).match(/^[\w\-:\$]+/i))?
d[0]:""c+=d.length+1f+=" "+dd=!1breakdefault:d&&(h+=g),c++}a=document.createElement(h)a.setAttribute("id",e)a.className=fa.appendChild(b.cloneNode(!0))b.parentNode.replaceChild(a,b)return b}
js判断添加多个标签js怎么样获取多个标签内容-百度经验1、创建一个test.html文件。
2、在文件内,使用ul、li标签创建一个测试的列表,同时创建一个button按钮,用于触发执行js函数。
3、在js标签内,
百度经验2020-01-12
其他人还搜了
js标签中点击事件失效
js 判断回车键
js判断是否是chrome
js判断数组中是否包含某一项
js添加标签绑定多个事件
js判断对象是否为空
js if判断多个条件_JS条件判断小技巧(一)weixin_39540271的博客-CSDN博客
文章标签:js if判断多个条件 js map用法 js table多层嵌套 js 数组追加 js三元表达式 经常code review,我发现JS newbie很容易写出一堆冗长的代码。今天就列几个比较常见的“解决之道”,看看...
CSDN技术社区2020-12-03
js 动态添加标签绑定多个事件-鸡蛋是方的-博客园
1:此方法为以aa开头的input标签绑定了事件;2:此方法:绑定多个事件,多个事件用空格分开,例子绑定了点击和输入时事件;3:如果调用第三方插件方法...
博客园2020-04-09
请问怎么用js判断循环里面li标签?百度知道
回答:2
代码: menu{width:100%text-align:center} menu li{display:inline-blockbackground:#cccpadding:15px 20px} current{color:#f3c} a href="#">menu</a></li>menu1 menu2 menu3 var lilenght=$(".menu li").length获取li个数 console.log(lilenght) if...
百度知道2020-11-20
js多重判断多个条件的方法-web教程网
我们编写js代码时经常遇到复杂逻辑判断的情况,通常大家可以用if/else或者switch来实现多个条件判断,但这样会有个问题,随着逻辑复杂度的增加,代码中的if/else/switch会变得越来越臃肿,...
web教程网
js 怎么获取a标签被点击的链接,有多个a标签-ZOL问答
5条回答:【推荐答案】添加onclick事件,获取href属性就知道具体的url地址了!DOCTYPEhtmlhtmlbodyscriptfunctionaclick(self){alert(self.href)}/scriptahref=ddd
中关村在线
JS添加标签-程序员大本营
我开始使用的是appendChild函数,结果发现appendChild只能添加指定标签,像我这样需要加一大堆标签和标签属性 *** 作起来就略显麻烦。于是我转而使用append函数,最开始我是这样写的:结果效果如下...
www.pianshen.com
如何使用js添加html标签_Keeling1720的博客-CSDN博客_js 插入html
1.使用 getElementById 获取想要写的标签的父标签对象(body除外,当然body也可以获取,当时没必要,因为他可以通过document.body直接调用)
2.使用 createElement 创建标签对象
CSDN技术社区
js怎么把几个li标签按顺序添加进一个div中?Charles_Tian的博客-CSDN博客
1.js怎么把几个li标签按顺序添加进一个div中?这种问题一般出现在前端请求数据之后,后端以数组的形式返回给前端,然后前端对这些数组进行处理。(1)首先是对后端返回的数据进行拆分,分别得到...
CSDN技术社区2017-12-10
js判断html是否存在指定标签,JavaScript检测字符串中是否 含有html标签实现方法_monte3card的博客-CSDN博客
JavaScript检测字符串中是否 含有html标签实现方法发布时间:2017-11-07 14:11来源:互联网当前栏目:web技术类这篇文章主要介绍了JavaScript检测字符串中是否含有html标签实现方法,本文直接给...
CSDN技术社区2021-06-16
相关搜索
js判断
js添加标签
js判断循环中的li标签
js判断数组
js判断字符串长度
js判断滚动条
js判断大小写
js 判断下拉框
js判断复选框是否选中
js添加html
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)