我正在尝试保存输入框并在使用document.getElementsByClassName时该操作仅适用于最后一项。
我创造了一个小提琴 http://jsfiddle.net/ktcle/6P8yx/2/
如果您在第一个文本框中输入文本并保存它会返回空白,但是您在第二个文本框中输入文本它会为两个保存按钮返回
var fileNameToSaveAs = document.getElementById("tlt").innerHTML;
var myDivObj = document.getElementById("tlt").innerHTML;
var items = document.getElementsByClassName('notesApp');
for (var i = 0; i < items.length; i++) {
var textToWrite = items[i].value
//alert(textToWrite);
var textFileAsBlob = new Blob([textToWrite], {type:'text/plain'});
}
我需要每个框来保存正确的文本输入
感谢
答案 0 :(得分:1)
有两个错误:
请参阅构建Blob部分以在此处附加blob:
https://www.inkling.com/read/javascript-definitive-guide-david-flanagan-6th/chapter-22/blobs
答案 1 :(得分:1)
var textToWrite = ""
for (var i = 0; i < items.length; i++) {
textToWrite += items[i].value
//alert(textToWrite);
var textFileAsBlob = new Blob([textToWrite], {type:'text/plain'});
}
答案 2 :(得分:1)
尝试使用While:
var allSuccess = document.getElementsByClassName("btn btn-lg btn-success");
while (allSuccess.length>0) {
allSuccess[0].disabled = true;
allSuccess[0].className = "btn btn-lg";
allSuccess = document.getElementsByClassName("btn btn-lg btn-success");
}
答案 3 :(得分:0)
单击时,两个按钮执行相同的操作。 获得第二个textarea的内容。
所以给一个param来saveTextAsFile你需要的textarea id。 并获得您想要的正确内容。
<div>
<textarea id="inputTextToSave" class="notesppp"></textarea>
<button onclick="saveTextAsFile('inputTextToSave')" class="btn">Save Notes</button>
</div>
<div>
<textarea id="inputsecondbox" class="notesApp" ></textarea>
<button onclick="saveTextAsFile('inputsecondbox')" class="btn">Save Notes</button>
</div>
function saveTextAsFile(textId)
{
var fileNameToSaveAs = document.getElementById("tlt").innerHTML;
var myDivObj = document.getElementById("tlt").innerHTML;
// changed
var item = document.getElementsById(textId);
var textToWrite = item.value;
var textFileAsBlob = new Blob([textToWrite], {type:'text/plain'});
// changed
.....
}