jquery 如何对当前li里 不同级的元素做操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery 如何对当前li里 不同级的元素做操作相关的知识,希望对你有一定的参考价值。

var plist = $(".plist li")
//收藏
plist.on("click", ".p-btn a.coll", function(e)
if($(this).html()=="收藏")
$(this).html("已收藏").css('background','#08c');
$(".p-price span").append("<em></em>");//这样写就把所有的都加上了
else
$(this).html("收藏").css('background','#6D6D6D');
$(".p-price em").detach();//

);
我只想把当前li里的加上

1、首先要获取到元素,获取元素的方法有很多。最常用的有根据id、class、标签名,既$("#id")、$(".class")、$("tagName")。详细说明可以参考:http://www.w3school.com.cn/jquery/jquery_ref_selectors.asp和http://www.w3school.com.cn/jquery/jquery_ref_traversing.asp。
2、对元素进行相关的操作。参考:http://www.w3school.com.cn/jquery/jquery_ref_manipulation.asp
参考技术A 按你的代码,无法判断span和li的从属关系

如果span是li的子节点,使用children,find
如果span是li的父节点,使用parent,parents
如果是同一个父节点下的某个子节点,使用parents找到共同的父节点,然后用find来获得

具体的类似$(this).children(".p-price span")追问

追答

$(this).find(".p-price em");

参考技术B var plist = $(".plist li")
//收藏
plist.on("click", ".p-btn a.coll", function(e)
if($(this).html()=="收藏")
$(this).html("已收藏").css('background','#08c');
$(this).after("<em></em>");
else
$(this).html("收藏").css('background','#6D6D6D');
$(this).parent().find("em").remove();//

);
参考技术C 你需要把html贴出来追问

追答

$(this).children(".p-price span").append("")
or
$(this).find(".p-price span").append("")

参考技术D <script>
$("#plist li").each(function()
$(this).bind("click",function()
$(this).find(".p-price span").append("<em></em>");
)
)
</script>
不知道我这么写 你能不能看的懂
------君少追问

不明白

追答

$("#plist li").each(function()
$(this).bind("click",function() 这个意思是给每个li都绑定一个click事件 当你点击你需要的li的时候就会执行$(this).find(".p-price span").append("");
这句话的意思是 在当前的li中找到 class为 p-price后的span这个元素

追问

我是要点一个按钮,不是li
麻烦的就是这个按钮和.p-price span的层级

追答

$(this).bind("click",function() 这换成 $(this).find(".p-price span").bind("click",function()
$(this).append("");

)
就行了

以上是关于jquery 如何对当前li里 不同级的元素做操作的主要内容,如果未能解决你的问题,请参考以下文章

jquery怎样获取一个元素下面相同子元素的个数?

jquery 点击当前添加一个样式,在次点击取消这个样式,

如何在 jquery 或 css 中定位下一个或同级元素?

jquery如何获取li元素

jquery each 怎么获取当前操作元素的索引

如何关闭同级 LI 元素的 UL?