我在这里不知所措,因为我是使用jquery / json的新手。我已成功将数据库中的数据提取为json格式,但页面上的显示无法正常工作。
我的问题分为两部分:
存储数据
我一直在使用HTML标签存储平面文字,但我也尝试过<b> Text </b>
的方法
以下哪项是正确/最佳做法? (这可能与其他问题无关,但如果不是......只是想把它包括在内)
在网页上显示
现在谈到真正的问题。我有正在使用的json数据没有任何问题(单击网站的一部分并更改另一部分),但html标签未被使用,它们按原样打印为文本。
jquery如下: $(document).ready(function(){
$.getJSON("jsondata.php",rightSideData);
function rightSideData(data) {
$.each(data, function(i, d) {
$("#changetext" + d.id).on('click', function() { //When clicked on: act
var h1 = $('<h1 />', {text : d.title}), //Get the content for the right side pane from the JSON
p = $('<p />', {text : d.content}); //text on a new paragraph
//Add the content to the right hand pane
$("#rightside").html(h1.add(p));
});
});
}
});
我在这里尝试了$("#rightside").html(h1.add(p)).text();
,没有结果。这是基于网络搜索提出的几个建议。
正文中的项目构造如下:
//Add the right hand side div, containing more information
$result2 = mysql_query("SELECT * FROM `articles` WHERE id='1'"); //Grab the first article
while($row = mysql_fetch_array($result2)) {
echo "<div class='rightside color_red2' id='rightside'> <h1>" . $row['title'] . "</h1><p />" . $row['content'] . "</div>"; //Paste data in the right side
}
我的问题是:如何点击其中一个触发内容更改的div,正确使用html标签格式化那里显示的数据?
我希望我解释得很好。如果你错过任何东西,当然可以随意问!提前谢谢!
修改 根据JSONdata的请求,这是我用于实际数据的格式。它是从我的测试站点直接复制的虚拟数据。
{"id":"2","title":"Some title","content":"Blue is a colour. <p>testpar</p> <br />testbr <b>test bold</b>","color":"blue"}
我想在rightsidepane上正确显示html标签,但我无法让它工作。
答案 0 :(得分:0)
经过更多的搜索后,我终于明白了,我认为这可能有助于未来的用户得到答案。
在我看到的一个例子中,我注意到他们正在调用这样的东西:
var h1 = $('<h1 />', {html : d.title}),
p = $('<p />', {html : d.content});
与我相反
var h1 = $('<h1 />', {text: d.title}),
p = $('<p />', {text: d.content});
最终说明
使用$("#rightside").html(h1.add(p));
似乎不起作用
当它像var added = h1.add(p); $("#rightside").html(added);
那样分开时,它似乎确实有效。不知道为什么..
这就像调用html({html: data}
)而不是文本类型一样简单。
希望它可以帮助其他任何人。