jquery如何获取li元素
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery如何获取li元素相关的知识,希望对你有一定的参考价值。
<ul>
<li class="item-a">A</li>
<li class="item-b">B
<ul class="level-1">
<li class="item-1">1</li>
<li class="item-2">2</li>
<li class="item-3">3</li>
</ul>
</li>
<li class="item-c">C</li>
<li class="item-b">D
<ul class="level-2">
<li class="item-1">1</li>
<li class="item-2">2</li>
<li class="item-3">3</li>
</ul>
</li>
</ul>
现在想获取东西是
<li class="item-a">A</li>
<li class="item-b">B</li>
<li class="item-c">C</li>
<li class="item-b">D </li>
但是B和D 内嵌的<ul><li>的内容就不要获取,谢谢!
ss=$("ul").children(".item-a,.item-b,.item-c,.item-d");是指定class名获取子元素.
实际上你这class组织比较不好控制,建议相同子级使用相同class名,这样比较好遍历.
区别子级下的具体元素可以用 id=class+"-?"来做.追问
我试试改class吧!如果有好的方法,麻烦再告诉我一下,谢谢!
追答试了下,可以用取得第一元素后,再取同级元素来做.
var ss=$("ul").children("li")[0]; //取得第一个
ss=$(ss).add($(ss).nextAll("li")); //加入同级其他
这时候ss就是你要的结果了,不过这样也不是最好的方法,最好还是像上面说的那样,同级同class
----
给你的最上级加个class=ulBase
$("#ulBase> li")
直接写$("ul> li") 会去取所有ul下的子级li
$('#元素id');通过class定位:$('.元素class');标签定义$('标签');其他属性定义,如name:
$('li[name="元素name"]');还可以通过元素间的关系定义,父子元素互找,前后元素互找。 参考技术B 哥们,你想复杂了吧,给最外面ul一个class或者id,直接就$("#menu li").hover(function(e));就能取出来啦,而且不会取到下一层的li,看你的代码是准备弄个导航吧。追问
呵呵,是准备弄分类导航!我试试,先谢谢拉
参考技术C 直接$("ul > li")就行了,或者$("$ul li[class^='item-']") 参考技术D $(ul>li)获取ul下子级的li元素,仅限子级。
jquery如何获取div中li元素
1、通过过滤器获取li数组
var lis = $('div li');//表示获取div下所有的直接或者非直接li节点。2、循环lis方式获取每个li元素
var li = lis[i];//获取每个li元素
参考技术A 应该可以的,试一下live方法
live( type, fn )
jQuery 1.3中新增的方法。给所有当前以及将来会匹配的元素绑定一个事件处理函数(比如click事件)。也能绑定自定义事件。
目前支持 click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, keydown, keypress, keyup。
还不支持 blur, focus, mouseenter, mouseleave, change, submit
与bind()不同的是,live()一次只能绑定一个事件。
这个方法跟传统的bind很像,区别在于用live来绑定事件会给所有当前以及将来在页面上的元素绑定事件(使用委派的方式)。比如说,如果你给页面上所有的li用live绑定了click事件。那么当在以后增加一个li到这个页面时,对于这个新增加的li,其click事件依然可用。而无需重新给这种新增加的元素绑定事件。
.live()与流行的liveQuery插件很像,但有以下几个主要区别:
.live 目前只支持所有事件的子集,支持列表参考上面的说明。
.live 不支持liveQuery提供的“无事件”样式的回调函数。.live只能绑定事件处理函数。
.live 没有"setup"和"cleanup"的过程。因为所有的事件是委派而不是直接绑定在元素上的。
要移除用live绑定的事件,请用die方法
返回值
jQuery
参数
type (String) : 一个或多个用空格分隔的事件名
fn (Function) : 欲绑定的事件处理函数
示例
点击生成的p依然据有同样的功能。
HTML 代码:
<p>Click me!</p>
jQuery 代码:
$("p").live("click", function()
$(this).after("<p>Another paragraph!</p>");
);
参考技术B <div id="menu">
<ul>
<li><a href="a.html"></a></li>
<li><a href="b.html"></a></li>
<li><a href="c.html"></a></li>
</ul>
</div>
$(document).ready(function ()
//定义url,一般为 li下的a 元素的href的值
var domainUrl = ['a.html','b.html','c.html'];
$("#menu li").each(function (i)
if (window.location.href.toLowerCase().indexOf(domainUrl[i]) > 0)
//onhover是个a被选中的样式,具体你可以自己写
$(this).addClass("onhover");
);
);
不明白追问或加Q20011011
本回答被提问者采纳 参考技术C $('div li')
$('div').find('li') 参考技术D 试试 $('div li')
以上是关于jquery如何获取li元素的主要内容,如果未能解决你的问题,请参考以下文章