【问题标题】:Javascript get list items from a js parsed stringJavascript 从 js 解析的字符串中获取列表项
【发布时间】:2012-08-22 18:43:43
【问题描述】:

我认为解决这个问题的最佳方法是直接进入并解释。

我正在使用 wordpess 和一个定制的模板(我们制作了它)这个代码是为了处理 twitter 小部件 pro。 (这不是授予的最漂亮的代码,我稍后会清理它)

<?php

/*
  * TWITTER SIDE BAR
  *
  * Sets the twitter area to display: none and pulls in the content from the server
  * Javascript then does a string replace to remove a bit of unwanted text
  * finally javascript will write the doctored string to the client browser
*/

?><div id="twitterRight">

  <ul class="xoxo" style="list-style-type:none; font-size:11px; margin:0px 20px 0 0;">
    <li id="twitter-2" class="widget-container widget_twitter">
    <div id="twitHold" style="display:none;">
    <h3 class="widget-title"><span class='twitterwidget twitterwidget-title'><a href="http://www.twitter.com/username" target="_blank"><img src="<?php echo home_url(); ?>/images/twitterName.png" width="208" height="27" alt="EhomeS" /></a></span></h3>

  <ul>
  <?php 
    $twitter = dynamic_sidebar('primary-widget-area');
  ?></ul>
  </div>
  <div id="twitHolder">

  <script type="text/javascript">
    // Get the posted content from the server
    var str = $('#twitHold').html();
    var x = str.replace("Twitter: @username", "");
    //var shortString = x.substr( 0, 10 );
    document.write(x);
  </script>    
  </div>

  </li></ul>
</div><!-- END #twitterRight -->

问题是 wordpress 函数 dynamic_sidebar 不返回字符串或任何东西,只返回一个布尔值,所以我无法操作它。所以我所做的就是将输出的 HTML 存储在一个 js 变量 x 中并从那里进行操作。

我想要实现的是简单地限制每个列表项(推文)中的字符数,但是我找不到这样做的方法。到目前为止,我已经尝试过this,但没有运气(我想是因为 javascript 正在写出来并解析它,我不确定)。

有没有办法对列表项执行 substr?

【问题讨论】:

    标签: php javascript html wordpress twitter


    【解决方案1】:

    问题有点不清楚,如果你想要列表项的集合,那么试试这个。

    使用 jquery 选择器,jquery 有很好的文档http://jquery.com/

    请务必将 jquery 库添加到您的文档中。

    <ul id="twitterlist">
      <?php 
        $twitter = dynamic_sidebar('primary-widget-area');
    ?></ul>
    
    <script type="text/javascript">
    var listitems = $('#twitterlist').children();
    </script>
    

    【讨论】:

    • 嘿,感谢您的评论,我在浏览器窗口上得到的只是 [object Object] 有什么理由吗? (给你一个赞成票)
    • 使用chrome javascript调试器,看看里面的javascript执行变量,应该可以看得更清楚
    • 在外部 html 中给出 "" 所以我认为这是我被卡住的地方,javascript被解析而不是实际添加到“html”或者我错了吗?
    • 使用 $('#twitholder').html(x) 插入 DOM
    • 啊,谢谢!现在,一个最终(我希望)的问题,它输出 [li#twitter-2.widget-container, li, li, li] 所以.. 我可以遍历这个并编辑其中的文本然后将其写回文件?顺便感谢您的所有帮助!快速编辑,如果我选择一个数组键,例如 listitems[0] 那么它会给我列表项:[object HTMLLIElement] 所以必须有一些方法可以做到这一点:S?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    • 2022-11-17
    相关资源
    最近更新 更多