使用jquery动态地将id添加到html组件

时间:2013-01-23 11:04:47

标签: php javascript jquery mysql

我正在尝试自动保存我的页面内容并将其转储到数据库中。在插入之前, 我想删除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吗?请说出你的想法并分享想法。
谢谢您的时间

3 个答案:

答案 0 :(得分: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());

答案 1 :(得分:2)

为什么不试试getJson jquery函数。

<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字符串的查询

答案 2 :(得分: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"