选择原始html类

时间:2015-08-13 03:45:04

标签: javascript jquery

$(function() {
   myhtml = '<tr><td>1</td><td>Orange</td><td>1799.00 x <span>1</span></td><td>0.00</td><td>1799.00</td></tr><tr class="shippingRow"><td></td><td></td><td></td><td>Shipping</td><td>2.00</td></tr><tr class="totalRow"><td></td><td></td><td></td><td><strong>Total</strong></td><td><strong>1811.00</strong></td></tr>'
   console.log($(myhtml).find('.shippingRow td').length);
});

我得到零而不是一个,我错过了哪一部分?我想删除类名或为myhtml做一些样式。

3 个答案:

答案 0 :(得分:8)

.shippingRow tr未嵌套在HTML字符串中的任何其他元素内。这意味着它是它返回的jQuery对象中的元素之一。 (即,因为你有3个小时,$(myhtml).length将返回3)。

由于.find仅搜索jQuery对象中元素的后代,因此它找不到具有shippingRow类的任何元素。

一种方法是使用.filter代替:

$(myhtml).filter(".shippingRow").find("td").length

答案 1 :(得分:2)

尝试在<table><tbody>开头添加myhtml </tbody></table>myhtmlFinding element in jquery ajax html answer

&#13;
&#13;
myhtml = '<table><tbody><tr><td>1</td><td>Orange</td><td>1799.00 x <span>1</span></td><td>0.00</td><td>1799.00</td></tr><tr class="shippingRow"><td></td><td></td><td></td><td>Shipping</td><td>2.00</td></tr><tr class="totalRow"><td></td><td></td><td></td><td><strong>Total</strong></td><td><strong>1811.00</strong></td></tr></tbody></table>';

console.log($(myhtml).find('.shippingRow td').length);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

答案 2 :(得分:2)

仅当元素仅附加在文档中时,元素才会成为DOM的一部分。

您的示例只是一个字符串,您需要将该字符串放入文档中才能成为有效的DOM。

你可以这样做:

var myhtml='<tr><td>1</td><td>Orange</td><td>1799.00 x <span>1</span></td><td>0.00</td><td>1799.00</td></tr><tr class="shippingRow"><td></td><td></td><td></td><td>Shipping</td><td>2.00</td></tr><tr class="totalRow"><td></td><td></td><td></td><td><strong>Total</strong></td><td><strong>1811.00</strong></td></tr>';
var fragment = document.createDocumentFragment();
var span= document.createElement("span");
$(span).append(myhtml);
fragment.appendChild(span);
console.log($(span).find('.shippingRow td').length);

我使用了文档片段,这样你的html就不会成为DOM树的一部分,但仍然可以通过javascript访问。请在此处阅读:https://developer.mozilla.org/en-US/docs/Web/API/Document/createDocumentFragment

  

DocumentFragments是DOM节点。它们永远不是主要DOM的一部分   树。通常的用例是创建文档片段,追加   元素到文档片段,然后附加文档   片段到DOM树。在DOM树中,文档片段是   被所有孩子取代。

FIDDLE:http://jsfiddle.net/0oxdqdot/