为什么不能对jQuery对象进行字符串化?

JSON.stringify( $("p") );JSON.stringify( $("p") ); 导致错误:

 InvalidStateError: Failed to read the 'selectionDirection' property from 'HTMLInputElement': The input element's type ('button') does not support selection. 

(我正在使用Google Chrome 34)

为什么?

我怎么能让$("p")更便携,以便我可以存储它或在消息中传递它?

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

如果你想在JSON中获得元素的某种表示 ,你可以使用.html()来获取表示元素的HTML字符串。 或者提出一种格式,例如,只对标签名称,属性和文本进行编码。 您可能必须手动实现(或找到一个库 – “html to json”可能是一个很好的关键字)