jquery在ie7下選取器的問題導致append失效的解決方案,jqueryappend

來源:互聯網
上載者:User

jquery在ie7下選取器的問題導致append失效的解決方案,jqueryappend

1,有如下這樣一段html

複製代碼 代碼如下:
<div class="right"id="pending">
 <table class="one"width="100%"border="0"cellspacing="0"cellpadding="0">
<tbody>
</tbody>
</table>
 <div id="pendingpage"class="paging">
</div>
</div>

 2,我用jquery動態填充tbody下的內容代碼如下

複製代碼 代碼如下:
$("#pending table tbody").empty().append(th).append(html);

 這段代碼在ie7及以下ie版本會有問題,jquery無法通過#pending table tbody 找到正確的dom位置並append內容。需要修改,修改的代碼如下

複製代碼 代碼如下:
$("table tbody").empty().append(th).append(html);

 把#pending去掉 直接通過table tbody找dom

3,我一時很疑惑,級聯的選取器很常見,但是在ie7下為什麼有這種問題,難道是jquery的bug或者div下嵌套table tbody的html寫法不夠標準?

下面繼續補充一下:

jquery在IE中使用append應注意的問題

$(document).ready(function() {   $.ajax({     url: 'Cutepage.htm',     dataType: 'json',     data: 'type=Init&PageSize=' + EachPage + '&PageIndex=1',     success: function(msg) {      //在IE7下無法顯示,在Firefox下沒有問題。。。。。      $('#Content').append('<tr><td width="19%"> 商品編號</td><td width="15%">商品名字</td><td width="20%">供應商商編號</td><td width="30%">商品種類編號</td><td width="10%">單價</td></tr>');     },    error: function(x) { alert("伺服器錯誤代碼:" + x.status); $('#Loading').hide(); }   }); });

修改(如下):

$(document).ready(function() {   $.ajax({     url: 'Cutepage.htm',     dataType: 'json',     data: 'type=Init&PageSize=' + EachPage + '&PageIndex=1',     success: function(msg) {      //修改後...(這樣就沒有問題了,可以看出Jquery對html標籤是比較敏感的,以後需要注意........)       var pageContent = '';         pageContent += '<table border="2">';       pageContent += '<tr><td width="19%"> 商品編號</td><td width="15%">商品名字</td><td width="20%">供應商商編號</td><td width="30%">商品種類編號</td><td width="10%">單價</td></tr>';       pageContent += '</table>';             $('#Content').append(pageContent );     },    error: function(x) { alert("伺服器錯誤代碼:" + x.status); $('#Loading').hide(); }   }); });

就是將內容複寫給一個參數,不要直接使用html內容。

jQuery的append方法不支援串連等HTML 屬性的解決

很是鬱悶,今天寫程式,想在文檔對象中append一些html上去,諸如<b><p>這些完全沒有問題,可是碰到了帶連結的HTML如:

複製代碼 代碼如下:
$("#test").append("<a href='#'>test</a>");

firefox毫無問題,IE6、IE7一直到IE8就死活上不去,只顯示常值內容,不帶任何串連。準備Google一下,卻發現Google.com已然無法登陸,Google.cn上查詢出來的基本上一頁全是採集站的那些垃圾文章,很是鬱悶。搞了半天,找到一篇文章,說是jQuery自身append函數的問題,這個函數自己帶類似HTML解析和分析的語句,基本的html沒問題,碰到連結或者未完全關閉的標籤或者是自訂的標籤,jQuery就死活認不出來。不知道是否真的如此,手頭的js庫是壓縮版,太晚了頭也昏昏沉沉不想再去看勞什子原始碼了。直接自己Create一個a標籤的元素插入進去好了,這樣搞:

複製代碼 代碼如下:
$(document.createElement(‘a')).attr({"href":"#", "id": ‘#mylink'}).appendTo("#test");

然後給這個連結附上內容:

複製代碼 代碼如下:
$(‘#mylink').text("test");

哎,累不累啊。不管了,睡覺了,明天有空看看jQuery的原始碼是怎麼寫的吧。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.