1

我有一个 JSON 对象,其中包括以下示例条目:

description":"<div>- diversen Diskutanten- Moderiert vom gro\u00dfartigen PreibischDebatte, Gesprochenes, Kontroverses<div class="btn-group"><a class"btn" href=""><i class="icon-map-marker"><\/i><\/a><a class"btn" href=""><i class="icon-map-marker"><\/i><\/a><\/div><\/div>"

现在我正在尝试将此html添加到我的代码中的另一个元素:

$('#desc_text').empty();
$('#desc_text').html(event.description);
$('#description').modal('show');

问题是html没有被解析为html,我认为jquery.html()会这样做。我也试过了append(),但也没有改变。

有谁知道如何将其解析为html?

编辑2:整个工作流程,因为它似乎有点混乱:

首先我这样做:

$events = json_encode($func->getAllDates());

该功能:

public function getAllDates() {
        $this->db->query('SELECT * FROM dates ORDER BY start');
        $result = $this->db->mysql_fetch_all();
        for($i = 0; $i < count($result); $i++) {
            $result[$i]['description'] = html_entity_decode(utf8_encode($result[$i]['description']));
        }
print_r($result);
        return $result;
    }

$result 函数的输出:

[6] => Array
        (
            [id] => 17
            [title] => Sabotage Debatte: Politik im Keller
            [start] => 2012-11-29 00:00:00
            [end] => 2012-11-29 00:00:00
            [allDay] => 1
            [url] => 
            [description] => <div>- diversen Diskutanten- Moderiert vom großartigen PreibischDebatte, Gesprochenes, Kontroverses<div class="btn-group"><a class"btn" href=""><i class="icon-map-marker"></i></a><a class"btn" href=""><i class="icon-map-marker"></i></a></div></div>
        )

编辑:

正如评论中所说:引用似乎是答案,但我不自己引用,只是使用 php-functions。也许我这样做的方式是错误的。

我从我的数据库中得到了这样的东西:

&amp;lt;div&amp;gt;- diversen Diskutanten- Moderiert vom großartigen PreibischDebatte, Gesprochenes, Kontroverses&amp;lt;div class=&amp;quot;btn-group&amp;quot;&amp;gt;&amp;lt;a class&amp;quot;btn&amp;quot; href=&amp;quot;&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;icon-map-marker&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;a class&amp;quot;btn&amp;quot; href=&amp;quot;&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;icon-map-marker&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;

然后我用

html_entity_decode(utf8_encode($result[$i]['description']));

把它转回来,然后我用 json_encode 把它变成 json 格式。不应该对这些功能中的任何一个进行正确的引用吗?

我希望你能进入工作流程......

4

2 回答 2

2

您的字符串具有必须转义的内部引号。此外,您还有一些错误的属性class"btn",例如应该在class="btn"之后,它将正常工作。

// description with all internal double quotes escaped by \"
var event = {
    "description":"<div>- diversen Diskutanten- Moderiert vom gro\u00dfartigen PreibischDebatte, Gesprochenes, Kontroverses<div class=\"btn-group\"><a class=\"btn\" href=\"\"><i class=\"icon-map-marker\"><\/i><\/a><a class=\"btn\" href=\"\"><i class=\"icon-map-marker\"><\/i><\/a><\/div><\/div>"
    };
$('#desc_text').empty();
$('#desc_text').html(event.description);​

这是关于 jsfiddle 的示例

OP评论后更新:

由于您正在检索此值并解码实体(包括引号),因此您必须json_encode()使用它来生成正确转义的引号。

json_encode(html_entity_decode(utf8_encode($result[$i]['description'])));

或者更有可能的是,对来自的整个数组进行编码:

json_encode($your_database_row_array);
于 2012-11-29T13:27:59.473 回答
0

也许你应该尝试:

document.getElementById('desc_text').innerHTML = unescape( event.description);
于 2012-11-29T13:27:23.570 回答