0

我正在尝试制作多个按钮,当单击它们时,它们会将标签添加<p></p><b></b>文本字段中。我已经想出了如何让它像这样工作:

<script>
function addtxt(input) {
    var obj=document.getElementById(input)
    obj.value+="<p></p>"
}
</script>

<input type="button" value="<p></p>" onclick="addtxt('body')">

但是我不想为每个不同的按钮设置多个脚本,而是想知道 JS 是否有办法将元素value用作obj.value. 可能吗?




编辑:我在网上发现了这个更好的其他代码,我怎样才能让这个新代码使用元素value,有什么办法吗?

function boldText(textAreaId, link) 
{
    var browser=navigator.appName
    var b_version=navigator.appVersion

    if (browser=="Microsoft Internet Explorer" && b_version>='4')
    {
        var str = document.selection.createRange().text;
        document.getElementById(textAreaId).focus();
        var sel = document.selection.createRange();
        sel.text = "<b>" + str + "</b>";
        return;
    }

    field = document.getElementById(textAreaId);
    startPos = field.selectionStart;
    endPos = field.selectionEnd;
    before = field.value.substr(0, startPos);
    selected = field.value.substr(field.selectionStart, (field.selectionEnd - field.selectionStart));
    after = field.value.substr(field.selectionEnd, (field.value.length - field.selectionEnd));
    field.value = before + "<b>" + selected + "</b>" + after;
}
4

2 回答 2

1

You may pass this to your onclick handler, and then access it's value within your function:

<script>
function addtxt(input, button) {
    var obj=document.getElementById(input);
    obj.value+=button.value;
}
</script>

<input type="button" value="<p></p>" onclick="addtxt('body', this)">
<input type="button" value="<b></b>" onclick="addtxt('body', this)">
于 2013-06-26T19:42:28.210 回答
0

div这是一个接收 javascript 生成的代码的特定示例。我不建议将它添加到divwith idbody,因为该词是为 html 结构元素保留的,所以我将目标 div 称为“addHere”。

Javascript

function addtxt(e) {
    console.log(e)
   var dest = document.getElementById("addHere");
   dest.innerHTML = e.value;

}

HTML

<input type="button" value="<p>Text</p>" onclick="addtxt(this)">
<div id="addHere"></div>

在这里摆弄

于 2013-06-26T19:54:36.617 回答