如何从HTML文本中获取具有指定选择器的所有类

时间:2014-06-14 14:46:56

标签: javascript jquery

我有AJAX代码,它返回需要渲染的HTML:

success: function (html) {

此处html是:

<div class="item">...</div>
<div class="item">...</div>
<div class="item">...</div>
<div class="item">...</div>

我需要逐个渲染它,所以需要提取它们但是某些东西不起作用 我没有得到<div class="item">...</div>我得到[Object object]

success: function (html) {
                var ctrls = [];
                $(html).each(function (index, value) {
                    if ($(this).attr('class') == 'item') {                        
                        ctrls.push(value);
                ...

我之前从未使用过.each

1 个答案:

答案 0 :(得分:3)

您希望找到与您的类选择器THEN匹配的元素。根据您的评论,您的元素似乎真的在容器内,因此find是您想要的操作。如果你实际上有一组操作filter将是正确的选择。

$(html).find('.item').each(function() {
   ctrls.push(this);
});

注意,如果您需要匹配元素的文本(HTML),请使用

$(html).find('.item').each(function() {
   ctrls.push($(this).html());
});

但是,通常,在操作DOM元素时,最好存储实际元素而不是文本值。如果您要将处理程序直接附加到它们,尤其如此,因为如果您转换为HTML以便操作它们,处理程序的附件将会丢失。