A. 关于js 遍历 ul li问题
$('#a').find('li').each(function(){
$(this).click(function(){
alert($(this).index())
})
})
别忘了引入jquery
再发一个纯版本的
<div id="a">
<ul>
<li>111111111</li>
<li>2222222222</li>
<li>33333333</li>
<li>4444444</li>
<li>55555555</li>
<li>66666666</li>
</ul>
</div>
<script>
var cNode =document.getElementById('a').getElementsByTagName('li');
for( var i=0; i<cNode.length; i++){
cNode[i].index= i;
cNode[i].onclick = function(){
alert( "this index of cNode is : " + this.index);
}
}
</script>
B. 如何使用js删除当前的ul中的li节点,也就是点击哪个li节点删除哪个谢谢!急!
<ul><li id="${id}" onclick="remove(${id})"></li><ul>
function remove(id){
//进行操作,完了删除节点
$("#"+id).remove();
}
C. 通过js遍历ul下的li,在给li赋上CLASS!急,有会的帮下忙吧!
这个没问题。
<script type="text/javascript">
var titlestr = '江宁概况回';
var liList = document.getElementById("about").childNodes;
for(var i = 0; i < liList.length; i ++)
{
答 if( liList[i].childNodes.length>0 && liList[i].firstChild.innerHTML == titlestr )
{
liList[i].className = "subNav";
break;
}
}
</script>
D. 请问js下如何删除<li><i></i><a href=""></a></li>里面的<i></i>标签
varnode=document.getElementById("key1");//获取ul标签
varcontent=node.innerHTML;//获取ul的HTML内容,及众img和li标签
content=content.replace(/<i></i>/g,"");//把i标签替换成空,即删除
node.innerHTML=content;//把删除后的HTML内容覆内盖原内容
这是根据容你的补充修改过的
E. jquery中怎么删除<ul>中的整个<li>包括节点
1.$('ul li').remove()
2.$('ul li').each(function(){
$(this).remove();
})
3.$("ul").find("li").remove()
4.$('ul').children().filter('li').remove()
jQuery就是的一个库,把我们常用的一些功能进行了封装,方便我们来调用,提高我们的开发效率。极大地简化了 JavaScript 编程。
Javascipt跟jQuery的区别:
Javascript是一门编程语言,我们用它来编写客户端浏览器脚本。
jQuery是javascript的一个库,包含多个可重用的函数,用来辅助我们简化javascript开发
jQuery能做的javascipt都能做到,而javascript能做的事情,jQuery不一定能做到。
(5)js清空ul下的所有li扩展阅读
jQuery删除子节点的方法总结:用ul中的li作为例子
1、remove()
$('ul li').remove():li节点本身及其所有后代节点都被删除;返回值是一个被删除节点的引用,因此可以在以后在次使用这些节点。
remove与empty一样,都是移除元素的方法,但是remove会将元素自身移除,同时也会移除元素内部的一切,包括绑定的事件及与该元素相关的jQuery数据。
remove表达式参数:remove比empty好用的地方就是可以传递一个选择器表达式用来过滤将被移除的匹配元素集合,可以选择性的删除指定的节点。
该节点与该节点所包含的所有后代节点将同时被删除。提供传递一个筛选的表达式,用来指定删除选中合集中的元素。
2、detach()
$('ul li').detach(): 同remove()一样,但是他不会把匹配的元素从jquery对象中删除,所以可以在将来在使用这些匹配的元素。
如果希望临时删除页面上的节点,但是又不希望节点上的数据与事件丢失,并且能在下一个时间段让这个删除的节点显示到页面,这时候就可以使用detach方法来处理detach从字面上就很容易理解。让一个web元素托管,即从当前页面中移除该元素,但保留这个元素的内存模型对象。
这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素。与remove()不同的是,所有绑定的事件、附加的数据等都会保留下来。$("div").detach()这一句会移除对象,仅仅是显示效果没有了。但是内存中还是存在的。当append之后,又重新回到了文档流中。就又显示出来了。
要特别注意,detach方法是JQuery特有的,所以它只能处理通过JQuery的方法绑定的事件或者数据通过 $("p").detach()把所有的P元素元素删除后,在通过append把删除的p放到页面上,可以通过点击文字测试,事件没有丢失。
JQuery是一个很大强的工具库,在工作中开发中,可是有些方法还是因为不常用到,或是没有注意到而被忽略。remove()和detach()可能就是其中的一个,可能remove()用得比较多,而detach()就可能会很少。
3、empty()
$('ul li').empty():清空元素中所有后代的节点
jQuery添加子节点的方法总结:
.html如下:<div<p>hello</p></div>
var list = '<i>ok</i>'
empty为清空方法,但是与删除又有点不一样,因为它只移除了指定元素中的所有子节点。
这个方法不仅移除子元素(和其他后代元素),同样移除元素里的文本。因为元素里任何文本字符串都被看做是该元素的子节点。如果通过empty方法移除里面div的所有元素,它只是清空内部的html代码,但是标记仍然留在DOM中,通过empty移除了当前div元素下的所有p元素,但是本身id=test的div元素没有被删除。
empty()方法并不是删除节点,而是清空节点,它能清空元素中的所有后代节点。empty不能删除自己本身这个节点。
F. 用js只获取第一层ul中的第一层的所有li,不影响第二层中的li
先按照你的这个方法获取。然后可以通过判断li的parentNode是不是外层的ul来筛选li
或者可以这么写
varul=document.getElementById('outer');
varn=ul.firstChild.nodeType==1?ul.firstChild:ul.firstChild.nextSibling;
varr=[];
for(;n;n=n.nextSibling){
if(n.nodeType==1){
console.log(n.innerHTML);
r.push(n);
}
};
G. php或者JS或者CSS怎么删除ul中最后一个li的border-bottom
php是后台语言,一般不用作前台样式的chuli,javascript或者CSS删除ul中最后一个li的border-bottom样式的方法如下:
javascript:obj.style.borderBottom = "none";
jquery:$("ul#test li:last-child").css("border-bottom","none");
css:ul#test li:last-child{border-bottom: none;}
jquery和css的方法比较简洁,下面实例演示javascript设置方法:
1、HTML结构
<ulid="test">
<li>Glen</li>
<li>Tane</li>
<li>John</li>
<li>Ralph</li>
</ul>
2、javascript代码
window.onload=function(){
varli=document.getElementById("test").getElementsByTagName("li");
li[li.length-1].style.borderBottom="none";
}
3、效果演示
H. 通过js遍历ul下的li,给每行的最后一个li赋上不同CLASS值!急,有会的帮下忙吧!
如果不适用js来控制的话,你可以这样做:
所有的li的class都一样为 picrp
.picrp{//这是普通样式
}
.picrp:nth-child(3n-1){//所有3的倍数的li的样式
}