我想在頁面上追加一個div到某個<li>
的末尾。 我無法改變標記的結構,所以我不得不從我所掌握的信息中鑽取。 我從span.ruUploadSuccess
開始,找到一個包含我的數組fileInfo[0]
中文本的文本。
然後,我去了兩位父母,這是我需要追加的<li>
。 如果div已經存在,我不想追加這些數據,所以我檢查該行是否已經有這個div(使用.has()
),然後使用.not()
從我的結果中篩選出來。jQuery .not()和.has()在IE7中無法正常工作
這在除IE7以外的所有瀏覽器中都有效。在IE7中,它找到了我想追加的正確行,但它不會過濾那些已經擁有此div的行。這導致附加相同的div兩次(或更多次)。
有沒有更簡單的方法來訪問這個特定的元素?有沒有理由在IE7中以不同的方式運行?
我尋找的<li>
元素追加到代碼:
var row = $("span.ruUploadSuccess:contains('" + fileInfo[0] + "')").parent().parent();
$(row).not($(row).has("div.contactUsAttachmentFileSize")).append(label);
這裏是在我試圖努力通過結構的一些樣本標記:如何使用過濾器
<ul id="content_0_leftcolumn_0_Attachments_RadAsyncUploadListContainer" class="ruInputs">
<li>
<span class="ruFileWrap ruStyled">
<span class="ruUploadProgress ruUploadSuccess">test file (above 5mb).zip</span>
</span>
<input class="ruButton ruRemove" type="button" name="RowRemove" value="Remove" tabindex="-1">
===> DIV GOES HERE <===
</li>
</ul>
你可能想分手'。不是(。先後())'線,並檢查是否IE7上'。不嗆()'或'。先後()',然後根據結果做一個解決方法。或者考慮放棄對IE <8的支持,並且向微軟發送一筆賬單,以便爲他們愚蠢的瀏覽器寫入黑客時間:) – MrOBrian 2012-08-09 20:31:17
@MrOBrian,我現在只是這樣做了,它是'.has()',它無法找到任何結果。 – 2012-08-09 20:50:18