我正在尝试制作多个按钮,点按这些按钮时,会将<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;
}
答案 0 :(得分:1)
您可以将this
传递给onclick
处理程序,然后在您的函数中访问它的值:
<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)">
答案 1 :(得分:0)
以下是一个特定div
的示例,它接收javascript生成的代码。
我不建议将它添加到带div
主体的id
,因为该单词是为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>