Value没有分配给document.getElementsByName返回的输入元素

Value is not assigned to the input element returned by document.getElementsByName

本文关键字:返回 输入 元素 getElementsByName document 分配 Value      更新时间:2023-09-26

我可以很容易地设置这个值,下面是代码:

    document.getElementById("set").onclick = function() {
    var d = document.getElementById("text").value;
    chrome.storage.sync.set({ "data" : d }, function() {
        if (chrome.runtime.error) {
            console.log("Runtime error.");
        }
    });
    window.close();
}

同步。Set工作正常。我要同步。Get函数在输入字段如下的不同域上工作

<input class="valueinput" type="text" name="Text_Value" size="12" value="" onfocus="select()" maxlength="6">

如您所见,没有分配id。我没有得到在上面的文本框中存储的值。下面是我使用的get代码。

function get() {
    chrome.storage.sync.get("data", function(items) {
        if (!chrome.runtime.error) {
            console.log(items);
            var textarea = document.getElementsByName("Text_Value");
            textarea.value = items.data;
        }
    });
}
get();

输入框没有任何id。请帮助。

文档。getElementsByName返回一个类似数组的NodeList集合,而不是单个元素,例如在逐步调试代码时可以看到。

var textarea = document.getElementsByName("Text_Value")[0];
if (textarea) { // always check if the element exists!
    textarea.value = items.data;
}