js如何获取多个共同class的标签内容集合?

技术问答 2023-11-17 22:22:12


如代码所示,我想要获取 class 是 emoji_icon 的 image-code 标签里的内容,结果应该是#qq_1_gif#,#qq_2_gif#,两个内容,我是这么写的

var code = $(".emoji_icon").attr("image-code");

结果只获取到了#qq_1_gif#,请问该怎么做?

加个for循环就行了啊document.querySelectorAll('.emoji_icon');然后for循环var arr= $(".emoji_icon"); var arr1=[]; arr.each(function(){ arr1.push($(this).attr("image-code")); });<img image-code="#qq_1_gif#" class="emoji_icon" src="image/qq/1.gif"> <img image-code="#qq_2_gif#" class="emoji_icon" src="image/qq/2.gif"> <script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script> <script type="text/javascript"> var arr = []; $(".emoji_icon").each(function(index,item){ console.log(); var imageCode = $(item).attr("image-code"); arr.push(imageCode); }) console.log(arr) </script>由于通过class获取的元素是一个集合,所以直接用.attr()方法时不能将所有内容获取到,可以利用楼上的循环方法,依次将attr值获取到并push到一个数组中。也可以使用ES6中的map,和循环原理一样 var imgArr= $(".emoji_icon"); var arr = imgArr.map(function(item) { return imgArr.eq(item).attr('data-code'); });<!DOCTYPE html><html><head> <title>test</title> </head><body><img image-code="#qq_1_gif#" class="emoji_icon" src="image/qq/1.gif"><img image-code="#qq_2_gif#" class="emoji_icon" src="image/qq/2.gif"><script type="text/javascript"> let emoji_icons = document.querySelectorAll('.emoji_icon'); emoji_icons.forEach((emoji_icon) => { let val= emoji_icon.getAttribute('image-code'); console.log(val); }) </script></body></html> 这总简单的就别用jq了,你的$(".emoji_icon") 得到的是对象,没有这种操作的,要先获取每个里面的dom你直接复制我的代码看下就知道了,用的是ES6的语法
声明:该文观点仅代表作者本人,必看呐发布平台,仅提供信息存储空间服务。