gpt4 book ai didi

javascript - 使用 jQuery 将选定的文本加粗/取消加粗

转载 作者:行者123 更新时间:2023-12-03 01:34:57 26 4
gpt4 key购买 nike

我正在尝试制作一个文本编辑器,可以使用 jQuery 将文本加粗、斜体和下划线,而无需使用任何 HTML

问题是我无法将选定的文本加粗,控制台日志输出“execCommand不是函数”,我做错了什么吗?我怎样才能实现我想要做的事情?

这是我的代码:

(function ($) {
$.fn.text_editor = function(options) {
this.each(function() {
var buttons = {
buttons: ['bold', 'italic', 'underline']
};
var parametres = $.extend(buttons, options);
// generated html
$("body").html("<div class=\"container\">");
$("body").append("<h1 style=\"padding-left:55px;\">text editor</h1>");
$("body").append("<textarea rows=\"10\" cols=\"50\"></textarea>");
$("body").append("<br>");
$("body").append("<div class=\"buttons\"");
$("body").append("<button id=\"bold\">gras</button>");
$("body").append("<button id=\"italic\">italic</button>");
$("body").append("<button id=\"barre\">underline</button>");

// js
$("bold").execCommand("bold");
$("italic").execCommand("italic");
$("underline").execCommand("underline");
console.log($("bold"));
});
};
})(jQuery);

$(document).ready(function() {
$("textarea").text_editor()
});

最佳答案

经过一番搜索,我发现了 this文章。

还有这支代码笔。 https://codepen.io/souporserious/pen/xBpEj

希望这有帮助。

$('.wysiwyg-controls a').on('click', function(e) {

e.preventDefault();
document.execCommand($(this).data('role'), false);
});
$controls-color: #ADB5B9;
$border-color: #C2CACF;

* {
box-sizing: border-box;
}

.wysiwyg-editor {
display: block;
width: 400px;
margin: 100px auto 0;
}

.wysiwyg-controls {
display: block;
width: 100%;
height: 35px;
border: 1px solid $border-color;
border-bottom: none;
border-radius: 3px 3px 0 0;
background: #fff;

a {
display: inline-block;
width: 35px;
height: 35px;
vertical-align: top;
line-height: 38px;
text-decoration: none;
text-align: center;
cursor: pointer;
color: $controls-color;
}
[data-role="bold"] {
font-weight: bold;
}
[data-role="italic"] {
font-style: italic;
}
[data-role="underline"] {
text-decoration: underline;
}
}

[class^="menu"] {
position: relative;
top: 48%;

display: block;
width: 65%;
height: 2px;
margin: 0 auto;
background: $controls-color;

&:before {
@extend [class^="menu"];
content: '';
top: -5px;
width: 80%;
}
&:after {
@extend [class^="menu"];
content: '';
top: 3px;
width: 80%;
}
}
.menu-left {
&:before, &:after {
margin-right: 4px;
}
}
.menu-right {
&:before, &:after {
margin-left: 4px;
}
}

.wysiwyg-content {
max-width: 100%;
width: 100%;
height: auto;
padding: 12px;
resize: both;
overflow: auto;
font-family: Helvetica, sans-serif;
font-size: 12px;
border: 1px solid $border-color;
border-radius: 0 0 3px 3px;
background: #F2F4F6;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wysiwyg-editor">
<div class="wysiwyg-controls">
<a href='#' data-role='bold'>B</a>
<a href='#' data-role='italic'>I</a>
<a href='#' data-role='underline'>U</a>
<a href='#' data-role='justifyleft'><i class="menu-left"></i></a>
<a href='#' data-role='justifycenter'><i class="menu-center"></i></a>
<a href='#' data-role='justifyright'><i class="menu-right"></i></a>
</div>
<div class="wysiwyg-content" contenteditable>
<b>Let's make a statement!</b>
<br>
<i>This is an italicised sentence.</i>
<br>
<u>Very important information.</u>
</div>
</div>

注意:这不是我的代码

关于javascript - 使用 jQuery 将选定的文本加粗/取消加粗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51113727/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com