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