目前我对JS很新,但对PHP非常好。这是一个艰难的过渡! 现在问题是,在字符串中替换字符。
基本上我有一个textarea,我想将所有内容更新到下面的div。然后在每个实时更新的基础上,我想替换所有' ['和']'与'<'和'>',它变得有点复杂。我希望它显示为实时HTML(感觉它们将是来自BBCode的HTML标签)。
这是我目前所拥有的:
HTML -
<textarea id="my_textarea" name="my_textarea"></textarea>
<input type="button" value="b" name="texteditorstylebuttonbold"/>
<input type="button" value="i" name="texteditorstylebuttonitalicize"/>
<input type="button" value="u" name="texteditorstylebuttonunderline"/>
<div id="display"></div>
JS -
function getInputSelection(elem){
if(typeof elem != "undefined"){
start = elem[0].selectionStart;
end = elem[0].selectionEnd;
return elem.val().substring(start, end);
}
else{
return '';
}
}
$('input:button[name^="texteditorstylebutton"]').click(function() {
var myTextAreaValue = $('#my_textarea').val();
var selectedText = getInputSelection($('#my_textarea'));
var updatedText = '['+$(this).val()+']' + selectedText + '[/'+$(this).val()+']';
myTextAreaValue = myTextAreaValue.replace(selectedText, updatedText);
$('#my_textarea').val(myTextAreaValue)
});
$('my_textarea').onkeyup(function() {
$('display').val() = $('#my_textarea').val().replace(new RegExp("[", 'g'), "<");
});
在继续之前,其他代码和输入用于为代码创建样式按钮,并且它们被假定为BBCode。我知道BBCode实际上并不完全是,但我正在做自己的事情! :)问题是虽然这段代码甚至不会直接更新代码...请帮助!
P.S。一个小例子:
用户在文本区域中输入此内容:[b] This is bold text [/b]
然后直播,它会将[b]替换为粗体HTML标记,并在下方向用户显示:这是粗体文字
请问您是否不明白问题所在。谢谢! :)
答案 0 :(得分:3)
这意味着您要将一些html内容附加到div。如果您希望div识别html标签,则需要使用.html()
属性:
$('#display').html($('#my_textarea').val());
此外,您需要按以下步骤更新此部分(onkeyup
应为keyup
,如果您使用 ID SELECTER # >):
$('#my_textarea').keyup(function() {
$('#display').html($('#my_textarea').val());
});
这是一个有效的演示:https://jsfiddle.net/0uoshu0s/6/