使用 jQuery 中的 text() 方法将字符串从函数写入 div 元素



下面包括我正在使用的当前代码:

<script type="text/javascript" >
  function rightTopSidebarAd() {
    document.write ("Text to test!");  
  }
</script>
<div style="border:3px solid #FF0000" id="rightTopSidebar">
</div>
<script type="text/javascript">
   $j('#rightTopSidebar').text(rightTopSidebarAd());
</script>

在这里,我有一个简单的函数rightTopSidebarAd()我想返回或打印字符串"要测试的文本!我希望该函数导致内容放置在rightTopSidebar元素内。

目前,它在div 之后打印"要测试的文本!",因为这是放置text()方法的地方。 如果我把jQuery代码放在上面,那么它就会打印在那个位置。

注意:我不能将jQuery代码放在div内,因为这只是一个演示。 在原始页面中,所有div元素都将分布在网页周围,我将jQuery函数存储在外部JavaScript文件中。

编辑:伙计们,我的错:我确实展示了一个简单的功能

  function rightTopSidebarAd() {
    document.write ("Text to test!");  
  }

为了说明我的问题,正如您所说,一个简单的"返回"可以解决此问题,但真正的函数并没有那么简单,我正在尝试返回一个 OpenX 代码,请告诉我如何使用这个函数:

 function rightTopSidebarAd() {
    document.MAX_ct0 ='{clickurl}';
    var m3_u = (location.protocol=='https:'?'https://one.mydomain.com/www/delivery/ajs.php':'http://one.mydomain.com/www/delivery/ajs.php');
    var m3_r = Math.floor(Math.random()*99999999999);
    if (!document.MAX_used) document.MAX_used = ',';
    document.write ("<scr"+"ipt type='text/javascript' src='"+m3_u);
    document.write ("?zoneid=15&amp;target=_blank");
    document.write ('&amp;cb=' + m3_r);
    if (document.MAX_used != ',') document.write ("&amp;exclude=" + document.MAX_used);
    document.write (document.charset ? '&amp;charset='+document.charset : (document.characterSet ? '&amp;charset='+document.characterSet : ''));
    document.write ("&amp;loc=" + escape(window.location));
    if (document.referrer) document.write ("&amp;referer=" + escape(document.referrer));
    if (document.context) document.write ("&context=" + escape(document.context));
    if ((typeof(document.MAX_ct0) != 'undefined') && (document.MAX_ct0.substring(0,4) == 'http')) {
        document.write ("&amp;ct0=" + escape(document.MAX_ct0));
    }
    if (document.mmm_fo) document.write ("&amp;mmm_fo=1");
    document.write ("'></scr"+"ipt>");
    document.write ("<noscript><a href='http://one.mydomain.com/www/delivery/ck.php?n=a8ed906c&amp;cb={random}' target='_blank'><img src='http://one.mydomain.com/www/delivery/avw.php?zoneid=15&amp;cb={random}&amp;n=a8ed906c&amp;ct0={clickurl}' border='0' alt='' /></a></noscript>");
 }  

您需要返回您的值,而不是将其写入文档:

function rightTopSidebarAd() {
   return "Text to test!";  
}

根据您的问题更新,您的函数现在应该是:

function rightTopSidebarAd() {
    var valueToReturn = '';
    document.MAX_ct0 ='{clickurl}';
    var m3_u = (location.protocol=='https:'?'https://one.mydomain.com/www/delivery/ajs.php':'http://one.mydomain.com/www/delivery/ajs.php');
    var m3_r = Math.floor(Math.random()*99999999999);
    if (!document.MAX_used) document.MAX_used = ',';
    valueToReturn += "<scr"+"ipt type='text/javascript' src='"+m3_u;
    valueToReturn += "?zoneid=15&amp;target=_blank";
    valueToReturn += '&amp;cb=' + m3_r;
    if (document.MAX_used != ',') valueToReturn += "&amp;exclude=" + document.MAX_used;
    valueToReturn += document.charset ? '&amp;charset='+document.charset : (document.characterSet ? '&amp;charset='+document.characterSet : '');
    valueToReturn += "&amp;loc=" + escape(window.location);
    if (document.referrer) valueToReturn += "&amp;referer=" + escape(document.referrer);
    if (document.context) valueToReturn += "&context=" + escape(document.context);
    if ((typeof(document.MAX_ct0) != 'undefined') && (document.MAX_ct0.substring(0,4) == 'http')) {
        valueToReturn += "&amp;ct0=" + escape(document.MAX_ct0);
    }
    if (document.mmm_fo) valueToReturn += "&amp;mmm_fo=1";
    valueToReturn += "'></scr"+"ipt>";
    valueToReturn += "<noscript><a href='http://one.mydomain.com/www/delivery/ck.php?n=a8ed906c&amp;cb={random}' target='_blank'><img src='http://one.mydomain.com/www/delivery/avw.php?zoneid=15&amp;cb={random}&amp;n=a8ed906c&amp;ct0={clickurl}' border='0' alt='' /></a></noscript>";
    return valueToReturn;
} 

只需从函数返回文本,而不是打印它:

<script type="text/javascript" >
  function rightTopSidebarAd() {
    return "Text to test!";  
  }
</script>
<div style="border:3px solid #FF0000" id="rightTopSidebar">
</div>
<script type="text/javascript">
   $j('#rightTopSidebar').text(rightTopSidebarAd());
</script>

当前方法尝试写入文档对象,而不是#rightTopSidebar

尝试对函数进行以下更新:

function rightTopSidebarAd() {     
    return "Text to test!";     
} 

通过使用 return,您将字符串传递给 text() 方法,这将导致传递的字符串被写入所需的元素。

此外,您需要通过将代码包装在 $(document).ready() 函数中来调用 text() 方法。

<script type="text/javascript">
function rightTopSidebarAd() {
    return "Text to test!";
} 
$(function(){
    $('#rightTopSidebar').text(rightTopSidebarAd());
});
</script>
<div style="border:3px solid #FF0000" id="rightTopSidebar"></div > 

最新更新