我有一些元素需要让文本内部可编辑,为此我使用HTML 5属性contentEditable。我似乎无法使用多个选择器来使用jQuery。我想要做的是让容器div中的每个标签都可以编辑。这是一个如果它与jQuery一起工作的例子:
$("#container <all tags here>").contentEditable = "true";
我不知道如何让它选择所有标签,但你明白了。
因此所有span,div,table,bold等都应该可以单独编辑
答案 0 :(得分:33)
$('#container *').attr('contenteditable','true');
*
表示“所有元素类型”,类似于a,div,span,ul,etc...
与大多数其他jQuery函数一样, attr 将相同的操作应用于选择器捕获的每个元素。
答案 1 :(得分:4)
$("#container *").attr("contentEditable", true)
只是一个猜测。远离工作站。
答案 2 :(得分:1)
我得到的印象是你在两个地方误解了这个问题:
jQuery创建“查询”对象,提供操作DOM元素集的简写。您的示例代码在查询上设置contentEditable,而不是匹配的内容。你想要jQuery的“在所有匹配元素上设置属性”的简写,即$('whatever').attr('contentEditable','true');
我不确定您是否正确理解contentEditable。您应该将它设置在每个可编辑区域的顶级容器中,并且其效果适用于其中的所有内容。根据我的经验,如果在#container
上设置contentEditable或类似#container div.post
之类的东西真的不够好,那么你就会遇到更大的问题。
答案 3 :(得分:0)
如果我能够正确记住,在父级上设置contentEditable
值也会导致其所有子级都可以编辑。
这样做:
$('#container').attr("contentEditable", "true");
应该有效。
答案 4 :(得分:0)
出于某些原因,在IE10中,这似乎有效:
$('#container').get(0).contentEditable = "true";
为什么attr不起作用我不知道。