$(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做一些样式。
答案 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>
,myhtml
,Finding element in jquery ajax html answer
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;
答案 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树中,文档片段是 被所有孩子取代。