我有一个jquery $ .ajax调用,它从data.html返回一组html,就像是;
<div class="blah"><li>test</li></div>
<div class="blah"><li>test</li></div>
<div class="blah"><li>test</li></div>
<div class="blah"><li>test</li></div>
我想计算一类.blah元素的数量,我不确定如何做到这一点。
我试过了:
data.html.getElementsByClassName('blah').length
但这显然不起作用!
感激不尽的任何建议!!
答案 0 :(得分:1)
尝试使用.hasClass()
var data = {};
data.html = '<div class="blah item item-wrapper print"></div>'
+ '<div class="blah item item-wrapper digital"></div>';
var len = $.grep($.parseHTML(data.html), function(el, i) {
return $(el).hasClass("blah")
}).length;
$("body").html(len);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
答案 1 :(得分:0)
您应该可以使用.filter()
或.find()
执行此操作,具体取决于您返回的HTML的确切格式。如果格式完全如您所述,那么以下内容应该有效:
$.get("data.html", function(data) {
var length = $(data).filter(".blah").length;
});
如果您的商品周围有类blah
的某种包装元素,那么您可以使用.find()
:
$.get("data.html", function(data) {
var length = $(data).find(".blah").length;
});
答案 2 :(得分:0)
$( '嗒嗒', '上下文')。长度
用您要搜索的对象替换上下文