我有一個包含HTMLHTML串不附加
var myhtml = "<div><a>DEMO</a></div>";
的字符串變量之前,我追加HTML,我想改變它,所以我這樣做。
$("body").append($(myhtml).filter("a").addClass("testing"));
但是,沒有附加任何東西,我沒有控制檯錯誤。我怎樣才能改變HTML並仍然正常追加它?
我有一個包含HTMLHTML串不附加
var myhtml = "<div><a>DEMO</a></div>";
的字符串變量之前,我追加HTML,我想改變它,所以我這樣做。
$("body").append($(myhtml).filter("a").addClass("testing"));
但是,沒有附加任何東西,我沒有控制檯錯誤。我怎樣才能改變HTML並仍然正常追加它?
還有就是要考慮兩件事情:
filter
改變上它被稱爲jQuery對象。在你的情況下,它只會保留a
並刪除父母div
。您應該使用find
。 find
將返回一個新的jQuery對象,而不會改變原來的一個。find
返回一個新的僅包含a
的jQuery對象。如果你想保留父div
,你必須插入第一個jQuery對象。var myhtml = "<div><a>DEMO</a></div>";
// Parse the string into a jquery object.
var $myhtml = $(myhtml);
// Add the "testing" class to the `a` child(ren).
$myhtml.find("a").addClass("testing");
// Add a class to the root of $myhtml (i.e. the `div`) if needed.
$myhtml.addClass("div-class");
// Append the jquery object.
$("body").append($myhtml);
.testing {
background-color: yellow;
}
.div-class {
padding: 5px;
border-style: solid;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
享受=)
var myhtml = "<div><a>DEMO</a></div>";
$("body").append($(myhtml).find('a').addClass("testing"))
好,用DIV:
var myhtml = "<div><a>DEMO</a></div>";
var $div = $(myhtml);
$div.find('a').addClass("testing");
$("body").append($div);
祝你好運!
此代碼只能追加'a'。 'div'被刪除。 –
或者你只是想將類測試添加到「a」,並附加整個div的身體? –
我試圖使用查找,我只得到'a'返回,但不是HTML的其餘部分 – guub
謝謝。我將如何去做多個改動?例如,我將如何添加一個類到div元素呢? – guub
'div'元素是你的jQuery對象的根,所以你可以在'$ myhtml'上使用'addClass'。 –
看看我的編輯。 –