Javascript 全局替换/字符
小提琴- 我一直在为我的平板电脑设计一个网站,它几乎可以发布了,但我有一个问题 您可以看到,当我调整样式属性以获得良好的视觉样式时,默认情况下浏览器会将对元素的css修改添加到样式属性中。我相信你们大多数人都知道 我已经能够通过将整个画布的html镜像到另一个div并删除该div中的样式来删除style属性,这样我的设计区域/画布仍然可以按预期工作 我想做的是抓取这个,并将它镜像到一个文本区域,同时抓取所有的孩子。你可以在我的小提琴上看到。我的问题是如何在屏幕截图中显示所有的儿童css 编辑:Javascript 全局替换/字符,javascript,jquery,Javascript,Jquery,小提琴- 我一直在为我的平板电脑设计一个网站,它几乎可以发布了,但我有一个问题 您可以看到,当我调整样式属性以获得良好的视觉样式时,默认情况下浏览器会将对元素的css修改添加到样式属性中。我相信你们大多数人都知道 我已经能够通过将整个画布的html镜像到另一个div并删除该div中的样式来删除style属性,这样我的设计区域/画布仍然可以按预期工作 我想做的是抓取这个,并将它镜像到一个文本区域,同时抓取所有的孩子。你可以在我的小提琴上看到。我的问题是如何在屏幕截图中显示所有的儿童css 编辑:
我最初尝试过这个,但它只会抓住第一个元素
$('.preview').children().prop("tagName").toLowerCase() + '.' + $('.preview').children().prop("className") + ' {\n ' +
$('.preview').children().attr('style').replace(/;/g,";\n") + '}'
最近我尝试了一下
$('.hidden-preview').html($('.preview').html());
$('.hidden-preview').children("*").html("");
$(".hidden-preview *").removeAttr('contenteditable');
$(".code").val($(".hidden-preview").html().replace(/>/g,'').replace(/</g,'').replace(/style="/g,'{\n ').replace(/class="/g,'.').replace(/"/g,'').replace(/;/g,';\n') + "}\n\n");
非常感谢您的帮助。.replace(///g,'}')
不起作用,因为需要在正则表达式中转义/
,如下所示:
.replace(/ \//g, '}')
.replace(///g,'}')
不起作用,因为需要在正则表达式中转义///code>,如下所示:
.replace(/ \//g, '}')
您需要进行一些修改:
要删除结束标记的开始括号,请执行以下操作:
.replace(/<\/?/g,'')
这将捕获任何非“
字符,并通过\1 sostyle=“foo”
变为{\nfoo}
从结尾处丢失对“
的替换和}
的追加
(实际上我已经更新了你的小提琴)你需要一些修改:
要删除结束标记的开始括号,请执行以下操作:
.replace(/<\/?/g,'')
这将捕获任何非“
字符,并通过\1 sostyle=“foo”
变为{\nfoo}
从结尾处丢失对“
的替换和}
的追加
(我实际上已经更新了你的小提琴)这是一个有趣的JQuery.replace(/style=“([^“]+)”/g,{\n$1}')
我以前从来都不需要使用^symbol。我理解你的解释,但我在理解([^“]+)方面有困难
数学部分。^
否定由[]
定义的字符类(如果它是第一个字符)。所以[^”]
匹配任何不是“
的字符。因此,您可以在引号之间捕获任意数量的非引号字符。好的,这将导致。这需要一段时间来记忆,但这肯定是有帮助的。谢谢这是一个有趣的JQuery。replace(/style=“([^“]+)”/g,{\n$1}')
我以前从未使用过^symbol。我理解你的解释,但我在数学上理解([^“]+)
部分时遇到困难。^
否定了[]定义的字符类
如果是第一个字符。所以[^”]
匹配任何不是“
的字符。因此,您可以在引号之间捕获任意数量的非引号字符。好的,这将导致。这需要一段时间来记忆,但这肯定是有帮助的。谢谢