计算ajax中的html元素返回的数据

时间:2015-04-03 15:41:30

标签: javascript jquery ajax

我有一个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

但这显然不起作用!

感激不尽的任何建议!!

3 个答案:

答案 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)

$( '嗒嗒', '上下文')。长度

用您要搜索的对象替换上下文