2

我正在尝试自动保存页面的内容并将其转储到数据库中。在插入之前,我想删除 HTML 元素的 id,因为它们是自动生成的,以后除了用户编辑它们的编辑页面之外不需要.(我已经实现了)但是,我面临的问题是当用户重新编辑页面时,我想再次添加id。(通过我们编写的随机函数)。这就是我使用 PHP 从数据库中获取数据的方式

    <?php
    $sqlEdit = "select revisionContent from tbl_revision where revisionId='".$_SESSION['contentId']."'"; //The query to get the record
    $rsEdit = $dbObj->tep_db_query($sqlEdit);                                                                                //The database object to execute the query   
    $resEdit = $dbObj->getRecord($rsEdit);                                                                                       
    $IdLessContent = $resEdit['revisionContent'];                                                                            //Variable with the record
      ?>

现在,我想在 javascript 中使用这个 PHP 变量,所以我这样做了。

  <script language="javascript">
    var getSavedContent = '<?php echo json_encode($IdLessContent); ?>';
    var trimmedCont=($.trim(getSavedContent).slice(1));
    //console.log(trimmedCont);
    var lengthCont= trimmedCont.length;
    var trimmedCont=$.trim(trimmedCont.slice(0,lengthCont-1));
            var pageContent=$('<div class="addId">').append(trimmedCont); //Here I tried creating a div dynamically and appending the content to the div.But now I am not able to manipulate or work on this dyamic div and get NULL when I alert saying $('.addId').html();
            $('.addId').children().attr('id', 'test');               //Itried doing this but does not work

我该如何实现?我尝试添加动态 div,但失败了。DOM 有问题吗?我没有在 DOM 中获取动态 div 吗?请发表您的意见并分享想法。
感谢您的时间

4

3 回答 3

3

在 JS 控制台中运行它,你就会明白:

var some = $('<div class="myadd">');
some.append('<span>hey</span>');

console.log(some.html());
console.log($('.myadd').html());

some.children().attr('id', 'neat');

console.log(some.html());
console.log($('.myadd').html());
于 2013-01-23T11:28:48.617 回答
2

我认为问题在于,您动态创建了 div,但您没有将其附加到您的 document.body 或类似的东西。因此,您的选择器根本找不到 DOM 中的元素。但是即使没有将动态创建的 div 添加到 DOM,也应该可以直接访问它,所以pageContent.children().attr('id', 'test');应该可以工作,但这会为 div 的所有子项分配一个 id。您可以使用var pageContent=$('<div class="addId" id="test">').append(trimmedCont);pageContent.get(0).id = "test"

于 2013-01-23T11:26:26.023 回答
2

你为什么不试试getJsonjquery函数。

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">

$(document).ready(function()
{
    $.getJSON('x-request.php', function(data) {
        var items = [];
        $.each(data, function(key, val)
        {
            items.push('<li id="' + key + '">' + val.from + ' -> ' + val.to + '</li>');
        });
        $('<ul/>',
        {
            'class': 'my-new-list',
            html: items.join('')
        }).appendTo('body');
    });

});

</script>

并编写查询以获取json_encode字符串x-request.php

于 2013-01-23T11:22:43.977 回答