【问题标题】:How to loop through ID elements in html如何遍历html中的ID元素
【发布时间】:2015-10-23 18:00:20
【问题描述】:

我正在尝试遍历我的 html 中的所有 ID 字段,并使用 JavaScript 将它们打印到文本字段中。 这就是我所拥有的: 感谢您的帮助:-)
** 看起来您的大部分问题都是代码,请提供更多详细信息**

<html>
<head>
<title>Modifying Sentiment</title>
</head>
<body>
<body bgcolor="#E6E6FA">
<font color=black size=+3>Modifying Sentiment</font>

<table>
    <tr><td>Text to Save:</td></tr>
    <tr>
        <td colspan="3">
        Add positive adjective:
        <img Adjective src="http://findicons.com/files/icons/2776/android_icons/96/ic_question_mark.png" alt="question" title="Adjective: is a word naming an attribute of a noun, such as sweet, red, or technical."
        width=20 />
        <br>
        <textarea cols=40 rows=3 id="textBox1" ></textarea>
        <p>
            <textarea id="textBox2" style="width:512px;height:256px"></textarea>
        </td>
    </tr>
    <tr>
        <td>Filename to Save As:</td>
        <td><input id="inputFileNameToSaveAs"></input></td>
        <td><button onclick="saveTextAsFile()">Save Text to File</button></td>
    </tr>
    <tr>
        <td>Select a File to Load:</td>
        <td><input type="file" id="fileToLoad"></td>
        <td><button onclick="loadFileAsText()">Load Selected File</button><td>
    </tr>
</table>

<script type='text/javascript'>

function saveTextAsFile()
{
    var el;
    var prefix = 'textBox';
    for(var i = 0; el = document.getElementById(prefix + i); i++){
        if (el != ""){
            var textToWrite = document.getElementById("el").value;
            var textFileAsBlob = new Blob([textToWrite], {type:'text/plain'});
            var fileNameToSaveAs = document.getElementById("inputFileNameToSaveAs").value;
        }
    }

    var downloadLink = document.createElement("a");
    downloadLink.download = fileNameToSaveAs;
    downloadLink.innerHTML = "Download File";
    if (window.webkitURL != null)
    {

        downloadLink.href = window.webkitURL.createObjectURL(textFileAsBlob);
    }
    else
    {

        downloadLink.href = window.URL.createObjectURL(textFileAsBlob);
        downloadLink.onclick = destroyClickedElement;
        downloadLink.style.display = "none";
        document.body.appendChild(downloadLink);
    }

    downloadLink.click();
}

function destroyClickedElement(event)
{
    document.body.removeChild(event.target);
}

function loadFileAsText()
{
    var fileToLoad = document.getElementById("fileToLoad").files[0];

    var fileReader = new FileReader();
    fileReader.onload = function(fileLoadedEvent) 
    {
        var textFromFileLoaded = fileLoadedEvent.target.result;
        document.getElementById("inputTextToSave").value = textFromFileLoaded;
    };
    fileReader.readAsText(fileToLoad, "UTF-8");
}

</script>
<input type=reset value=Clear id="reset">
</body>
</html>

【问题讨论】:

  • 什么是ID字段
  • 我认为你已经纠正了你的 for 循环
  • 我所有的 ID 元素都被称为:textbox1,textbox2,textbox3, ......
  • if(el != "") 的目的是什么? el 是一个 DOM 元素,而不是字符串。

标签: javascript html


【解决方案1】:

您可以选择所有元素为document.querySelectorAll('[id^=textbox]')

遍历上述查询返回的 NodeList。

代码

var textBoxes = document.querySelectorAll('[id^=textbox]');
var textToWrite;
for(var i in textBoxes){
   textToWrite = textBoxes[i].value;
   /* do your thing */
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    • 2021-10-04
    • 2021-04-27
    • 1970-01-01
    相关资源
    最近更新 更多