Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么可以';你不能对jQuery对象进行字符串化吗?_Javascript_Jquery_Json - Fatal编程技术网

Javascript 为什么可以';你不能对jQuery对象进行字符串化吗?

Javascript 为什么可以';你不能对jQuery对象进行字符串化吗?,javascript,jquery,json,Javascript,Jquery,Json,行JSON.stringify($(“p”)导致错误: InvalidStateError: Failed to read the 'selectionDirection' property from 'HTMLInputElement': The input element's type ('button') does not support selection. (我正在使用谷歌Chrome34) 为什么? 我还应该如何使$(“p”)更具可移植性,以便将其存储或传递到消息中?HTML元素中

JSON.stringify($(“p”)导致错误:

InvalidStateError: Failed to read the 'selectionDirection' property from 'HTMLInputElement': The input element's type ('button') does not support selection.
(我正在使用谷歌Chrome34)

为什么?

我还应该如何使
$(“p”)
更具可移植性,以便将其存储或传递到消息中?

HTML元素中涉及大量状态(属性、事件处理程序、与这些相关的代码、内部状态等)。将所有这些序列化为JSON是没有意义的


如果您想获得JSON中元素的某种表示形式,例如,您可以使用
.html()
获取表示该元素的html字符串。或者提出一种仅编码标记名、属性和文本的格式。您可能需要手工实现(或者找到一个库——“html到json”可能是一个很好的关键字)

为什么要将对象字符串化?目的何在?您应该在json对象中存储所需的数据,并将其字符串化,对吗?为什么要存储DOM元素的jQuery选择集,或者首先使其可移植?这些
p
s中是什么?问题的实际上下文是什么?很难看出传递jQuery选择器的结果需要在消息中传递。除非您只需要HTML,否则在这种情况下,
$('p').HTML()
就足够了吗?@jonS90使用元素的ID如何?(如果没有,则设置UID)@jonS90
if(!$('foo').attr('id')){$('foo').attr('id','UID-')+Math.random();}
如果他需要
p
标记,最好在其上调用
outerHMTL
来捕获
p
标记本身。@izuriel:是的,这也适用于单个元素。我觉得他实际上可能有多个,在这种情况下,将它们添加到一个虚拟元素中,并使用
html()
似乎是从中获取html字符串的最简单方法。html本身不允许我重构jQuery对象。我认为表示应该有一个唯一的ID或类(我可以从中重建jQuery对象),另外还有我需要的任何组件,比如
.html()
.css()
东西。这是一个巨大的帮助!