动态生成的内容DIV

时间:2013-03-15 14:57:21

标签: php javascript jquery tags

我已经看过bootstrap github页面以及他们如何处理他们的侧边栏,这些侧边栏向下滑动并且包含文章的所有标题。

我试图想出一种可以构建的方法,我现有的系统是手动输入每个锚点并为其创建链接。

目前我有

<h1>Main Title</h1>
<a href="#Para5" class="scroll">Para5</a>
<a href="#Para10" class="scroll">Para10</a>
<a href="#Para15" class="scroll">Para15</a>
<a href="#Para20" class="scroll">Para20</a>
<br/>
<h2>Para1</h2>
     <p>.....</p>
<h2>Para2</h2>
     <p>.....</p>
<h2>Para3</h2>
     <p>.....</p>
<h2>Para4</h2>
     <p>.....</p>
<h2>Para5</h2>
     <p>.....</p>
etc...

然后我必须为这些标题手动添加id,目的是让每5个标题都有一个链接和一个显示“全部显示”的按钮,该按钮将显示该页面的所有标题。

创建使用HTML嵌入式文本编辑器输入的页面时,代码不可见并存储在MySQL数据库中。

我希望有标题和段落,然后是主页面标题,键入,但让链接动态插入页面,在主标题下面。

  1. 在h2和/ h2之间捕获文本,为其创建链接和ID。为所有h2做这个 页。
  2. 我不能为我的生活思考如何从PHP创建的页面中捕获这样的信息。

    页面的处理可以使用jQuery和Javascript或者在PHP中预先完成。

    喜欢用PHP做事。


    忽略第5个元素。

    <h1>Main Title</h1>
    <div id="paraNav">
    </div>
    <br/>
    <div id="headings">
    <h2>Para1</h2>
         <p>.....</p>
    <h2>Para2</h2>
         <p>.....</p>
    <h2>Para3</h2>
         <p>.....</p>
    <h2>Para4</h2>
         <p>.....</p>
    <h2>Para5</h2>
         <p>.....</p>
    </div>
    

    目标是抓住标题的文本,如:

    $('#headings h2').each(function(i,$el){
        var headingTitle = $el.text;  **  
          document.write('<a href="#headingTitle" class="scroll">headingTitle</a>')
        $('h2').append.attr({
             'id':headingTitle
        });
    });
    

    **不确定该位是否存在。 (获取标签之间的内容/值/文本)

2 个答案:

答案 0 :(得分:0)

您可以使用jQuery执行此操作。

这很快又脏,但可能会让你开始。我没有测试过这个。可能存在语法错误。

var linkArray = [];

$('h2:nth-child(5)').each(function () {
    linkArray.push({
        text: $(this).text,
        // href: $(this).id
    });
});

for (var i = 0; i < linkArray.length; i++) {
    $('#linkcontainer').append('<a href="' + linkArray[i].text + '">' + linkArray[i].text + '</a>');
}

答案 1 :(得分:0)

我认为jQuery有一些更好的工具可以用来做你想做的事情。如果你试图用PHP做它可能是一个草率的工作,而jQuery你可以用几行做。像

这样的东西
$('#content h2:nth-of-type(5n)').each(function(i,$el){
    ver headingId = $el.attr('id');
    $('#contentNav').append(
        $('<a/>').html(headingId).attr({
            'href':'#'+headingId,
            'class':'scroll'
        })
    );
});