在js或jquery中,我要清除里面的span标签,但是里面还有a标签,我要保留a标签删除span

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在js或jquery中,我要清除里面的span标签,但是里面还有a标签,我要保留a标签删除span相关的知识,希望对你有一定的参考价值。

在js或jquery中,我要清除里面的span标签,但是里面还有a标签,我要保留a标签删除span需要怎么做?
$(".div).empty()?,怎么搞,求指教!

//选择div内的span标签
var objects=$(".div").children("span");
for(var i=0;i<objects.length;i++)
    //遍历span标签,移除span
    objects[i].remove();


remove()定义和用法

remove() 方法移除被选元素,包括所有文本和子节点。

该方法不会把匹配的元素从 jQuery 对象中删除,因而可以在将来再使用这些匹配的元素。

但除了这个元素本身得以保留之外,remove() 不会保留元素的 jQuery 数据。其他的比如绑定的事件、附加的数据等都会被移除。这一点与 detach() 不同。

语法

$(selector).remove()

追问

这个方法确实可以,但是,节点可以删除,但是它占用的空间还在是怎么回事儿?

追答

remove()不会保留占用的位置啊

参考技术A

那既然要删除span ,保留a标签,那为什么不把它们分开?如果你想实现这个效果,可以先找到span的父节点元素,然后把a标签放到父节点元素里面,然后在删掉span就可以了。

var parent = jQuery("span").parent();
var a = jQuery("span").find("a").clone();
parent.append(a);
jQuery("span").remove();

参考技术B 可以先把里面需要保留的a标签取出来然后remove掉span,然后再把刚才取出来的a标签放进去 参考技术C 用unwrap();
var a = $("a");
a.unwrap();

js怎样清除或者替换添加的标签

如图,我想点击按钮文字在同一个地方交替出现,而不是这样子往后排列,应该怎么做?用清除或者替换的方法应该怎样弄?

你可以把你的appendChild加在 if判断里,判断一次 先清空,再加上。
你就写一个盒子,在盒子里进行append,而不是在body里了。清空的话就将整个盒子内容innerHTML为空就行了
你如果只是交替的改变的话,就没必要用appendChild();,直接用 obj.innerHTML = "你的内容";就行了追问

写一个盒子什么意思?没明白,还有清空是用的哪个方法??新手

追答

盒子就是div标签的意思,你把要写的文字放在一个div里面,比如说div的id='a';你先将里面的内容清空,就写a.innerHTML='';就行了,你要往里面加文字,就=右侧写你的文字就行了,两种文字分别写在if的两个判断里,先清空,在写入

参考技术A function strlens()//判断字符串长度超过12长度时后面显示...
var strlobj= document.getElementsByClassName("list_title");
var class_sum = strlobj.length;
for(var i=0;i<class_sum;i++)
var strvalue= strlobj[i].innerText;
strvalue = strvalue.substr(0,10)+"......";
strlobj[i].innerHTML = "";//清除后插入
var texts = document.createTextNode(strvalue);//插入数据
strlobj[i].appendChild(texts);

以上是关于在js或jquery中,我要清除里面的span标签,但是里面还有a标签,我要保留a标签删除span的主要内容,如果未能解决你的问题,请参考以下文章

怎么利用js取下面的span值,

jquery如何动态添加标签并标签里面有样式

js获取值,动态添加到span标签中

js如何去掉某个标签里面的内容

在js中, 怎么往span标签里放值进去?

jquery用append给标签里面加东西,但是怎么解决不能重复添加的问题了?