2010-05-07 79 views
0

是有可能做追加而不所以在HTML中指定選擇追加不選擇

我有一個任意元素和內,我稱之爲,將追加內容內嵌

所以HTML看起來像這樣的功能

<!-- stuff before --> 
    <fieldset> 
     <script type="text/javascript"> 
       $(document).ready(function(){ 
        get_content(); 
       }); 
     </script> 
    </fieldset> 
    <!-- stuff after --> 
在被加載我有這樣

function get_content(){ 
     $.append('<div id="some_id"></div>'); 
    } 
的get_content()函數的js文件

然後

目前我收到一個錯誤,說append不是函數

回答

0

JavaScript不會以您試圖在此處執行的方式寫出代碼。 JavaScript與內容是分開的,並且與整個文檔一起使用,因此將JavaScript放在您想要顯示的標記中將不會執行任何操作,除非您使用document.write(...),這被認爲是您可以在JavaScript中使用的最糟糕的事情之一。

相反,你應該這樣做:

您的標記應該是這樣的:

<!-- stuff before --> 
<fieldset id="elementToAppendTo"> 

</fieldset> 
<!-- stuff after --> 

然後你的腳本看起來是這樣的(它可以去任何地方)

<script type="text/javascript"> 
$(document).ready(function(){ 
    get_content(); 
}); 
</script> 

而且那麼你可以使用你的get_content()函數來追加東西。

function get_content(){ 
    $("#elementToAppendTo").append('<div id="some_id"></div>'); 
} 
+0

嗯試圖不使用ID或類,但看起來像這是最好的選擇 – mcgrailm 2010-05-07 15:39:21

0

這不是很漂亮,但我想你可以做到這一點;

function get_content(){ 
    document.write($('<div><div id="some_id"></div></div>').html()); 
} 
0

在過去,這將通過document.write()來完成:

<!-- stuff before --> 
    <fieldset> 
     <script type="text/javascript"> 
      document.write(get_content()); 
     </script> 
    </fieldset> 
    <!-- stuff after --> 

function get_content(){ 
    return '<div id="some_id"></div>'; 
} 

但實際上document.write不是jQuery的工作方式。試試這種方式:

function get_content(){ 
    return 'your real content'; 
} 
$(document).ready(function(){ 
    $('#some_id').html(get_content()); 
}); 


    <!-- stuff before --> 
    <fieldset> 
     <div id="some_id"></div> 
    </fieldset> 
    <!-- stuff after -->