HTML5 contentEditable与jQuery

时间:2010-09-07 01:13:04

标签: jquery html contenteditable

我有一些元素需要让文本内部可编辑,为此我使用HTML 5属性contentEditable。我似乎无法使用多个选择器来使用jQuery。我想要做的是让容器div中的每个标签都可以编辑。这是一个如果它与jQuery一起工作的例子:

$("#container <all tags here>").contentEditable = "true";

我不知道如何让它选择所有标签,但你明白了。

因此所有span,div,table,bold等都应该可以单独编辑

5 个答案:

答案 0 :(得分:33)

$('#container *').attr('contenteditable','true');

*表示“所有元素类型”,类似于a,div,span,ul,etc...

与大多数其他jQuery函数一样, attr 将相同的操作应用于选择器捕获的每个元素。

答案 1 :(得分:4)

$("#container *").attr("contentEditable", true)

只是一个猜测。远离工作站。

答案 2 :(得分:1)

我得到的印象是你在两个地方误解了这个问题:

  1. jQuery创建“查询”对象,提供操作DOM元素集的简写。您的示例代码在查询上设置contentEditable,而不是匹配的内容。你想要jQuery的“在所有匹配元素上设置属性”的简写,即$('whatever').attr('contentEditable','true');

  2. 我不确定您是否正确理解contentEditable。您应该将它设置在每个可编辑区域的顶级容器中,并且其效果适用于其中的所有内容。根据我的经验,如果在#container上设置contentEditable或类似#container div.post之类的东西真的不够好,那么你就会遇到更大的问题。

答案 3 :(得分:0)

如果我能够正确记住,在父级上设置contentEditable值也会导致其所有子级都可以编辑。

这样做:

$('#container').attr("contentEditable", "true");

应该有效。

答案 4 :(得分:0)

出于某些原因,在IE10中,这似乎有效:

$('#container').get(0).contentEditable = "true";

为什么attr不起作用我不知道。