2015-07-28 23 views
0

在CMS環境中實現此代碼時。獲取beloe錯誤。AJAX調用outerHTML uncaught typeError

遺漏的類型錯誤:無法未定義

誰能幫我的讀取屬性「outerHTML」來解決這個問題?

在此先感謝

main.html中:

<div class="pwrapper"> 
        <select name="country" id="scountry"> 
        <option id="EN" value="global.html">GLOBAL, ENGLISH</option> 
        <option id="AU" value="australia.html">AUSTRALIA</option> 
        </select> 
       </div> 
       <script type="text/javascript"> 
        $(document).ready(function() {      
         $('.country #scountry').on('change', function(e){ 
          var ajaxURL = $(this).val(); 
          $.ajax({ 
           url: ajaxURL, 
           success: function(data) { 
            var htmlData = $(data); 
            $('#scontainer').html(htmlData.filter('#ajax-container').get(0).outerHTML); 
           } 
          });       
         });       
         $('.countrySelector #scountry').trigger('change'); 
        }); 
       </script> 
</div> 

<div class="wrapper"> 
<section class="no-padding"> 
    <div id="scontainer"> 
    </div> 
</section> 
</div> 

global.html(在main.html中的子頁面):

<div id="ajax-container"> 
    Hello World!! 
</div> 
+0

不'$(「#scontainer」)HTML (數據);'工作? – lshettyl

+0

你不需要outerHTML ...只需插入jQuery對象。如果它是返回的根的唯一元素...插入'data'並且不需要過濾 – charlietfl

回答

0

替換此行:

htmlData.filter('#ajax-container').get(0).outerHTML 

與此代碼

htmlData.find('#ajax-container').html(); 
+0

而不是:htmlData.filter('#ajax-container')。get(0).outerHTML – Alexander

+0

太棒了。 .. 有用!!! – TDG

0

這是使用load()其是用於$.ajax的快捷方法的理想情況。網址是用來確定在容器中插入該請求的HTML響應的片段後

$('#scontainer').load(ajaxURL +' #ajax-container); 

空間分隔選擇:

你可以替換當前$.ajax請求,並與回調。如果返回的唯一的根元素是你想要的ID,你不需要對任何碎片過濾和可以刪除片段選擇

參考:load() docs

相關問題