0

当我将代码从 textarea 复制到 div 然后返回时,内容不再相同。

<!doctype html>
<html>
<head>
</head>
<body>
<textarea id="ta" rows="10" cols="120"><p> "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation <ul><li>sfsD</li><li>sf234fw</li></ul> ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." </p></textarea>
<br>
<button>Button</button>
<div id="container"></div>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
    <script type="text/javascript">
        $('button').click(function(){
            $('#container').html($('#ta').val());
            $('#ta').val($('#container').html());
        });
    </script>
</body>
</html>

因此,当我将文本从 textarea 复制到 div 时,一切都很好。但是当我从 div 复制回 textarea 时,现在的值是

<p> "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. 
Ut enim ad minim veniam, quis nostrud exercitation </p>
<ul><li>sfsD</li><li>sf234fw</li></ul> ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in 
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, 
sunt in culpa qui officia deserunt mollit anim id est laborum." <p></p>

我不确定为什么会发生这种情况或如何解决?!有任何想法吗?这发生在 FF 和 chrome 中。

4

4 回答 4

1

利用$('#ta').val($('#container').text());

于 2012-10-03T19:13:14.367 回答
1

我可以看到的不同之处在于您非法放置标记,ULs不允许在P标签内...基本上有问题的两个浏览器都会破坏P它们找到其他块级元素的位置 - 它们基本上是为您自动更正您的标记.

如果您要复制他们返回给您的标记作为您放置在 textarea 中的标记,那么下次您测试按钮时不会有任何更改。

于 2012-10-03T19:13:59.447 回答
1

val()返回值(这可能意味着许多不同的东西,具体取决于元素是什么),同时html()返回标记。

您不能混合和匹配这两个调用并期望您的输入与您的输出匹配 - 选择一个或另一个来满足您的需求。

于 2012-10-03T19:14:22.257 回答
0

因为html()返回标记。也许你需要text().

于 2012-10-03T19:10:43.620 回答