Javascript 为什么使用HTML数据列表';s选项标签不起作用

Javascript 为什么使用HTML数据列表';s选项标签不起作用,javascript,html,bookmarklet,javascript-injection,Javascript,Html,Bookmarklet,Javascript Injection,如标题所述,我认为这部分代码有任何错误: var td5=document.createElement(“td”); td5.innerHTML=“Locale”; tr3.附肢儿童(td5); var td6=document.createElement(“td”); tr3.附肢儿童(td6); var tdc3=document.createElement(“输入”); tdc3.type=“文本”; tdc3.style.width=“100%”; setAttribute('list

如标题所述,我认为这部分代码有任何错误:

var td5=document.createElement(“td”);
td5.innerHTML=“Locale”;
tr3.附肢儿童(td5);
var td6=document.createElement(“td”);
tr3.附肢儿童(td6);
var tdc3=document.createElement(“输入”);
tdc3.type=“文本”;
tdc3.style.width=“100%”;
setAttribute('list','lcl');
tdc3.id=“loc”;
var tdc3a=document.createElement(“数据列表”);
tdc3a.id=“lcl”;
var lop1=document.createElement(“选项”);
lop1.value=“我的”;
lop1.innerHTML=“我的”;
var lop2=document.createElement(“选项”);
lop2.value=“SG”;
lop2.innerHTML=“SG”;
var lop3=document.createElement(“选项”);
lop3.value=“AU”;
lop3.innerHTML=“AU”;
var lop4=document.createElement(“选项”);
lop4.value=“NZ”;
lop4.innerHTML=“NZ”;
var lop5=document.createElement(“选项”);
lop5.value=“PK”;
lop5.innerHTML=“PK”;
var lop6=document.createElement(“选项”);
lop6.value=“PH”;
lop6.innerHTML=“PH”;
var lop7=document.createElement(“选项”);
lop7.value=“ID”;
lop7.innerHTML=“ID”;
var lop8=document.createElement(“选项”);
lop8.value=“VN”;
lop8.innerHTML=“VN”;
var lop9=document.createElement(“选项”);
lop9.value=“TH”;
lop9.innerHTML=“TH”;
var lop10=document.createElement(“选项”);
lop10.value=“IN”;
lop10.innerHTML=“IN”;
var lop11=document.createElement(“选项”);
lop11.value=“CN”;
lop11.innerHTML=“CN”;
var lop12=document.createElement(“选项”);
lop12.value=“JP”;
lop12.innerHTML=“JP”;
var lop13=document.createElement(“选项”);
lop13.value=“KR”;
lop13.innerHTML=“KR”;
var lop14=document.createElement(“选项”);
lop14.value=“TW”;
lop14.innerHTML=“TW”;
var lop15=document.createElement(“选项”);
lop15.value=“HK”;
lop15.innerHTML=“HK”;
var lop16=document.createElement(“选项”);
lop16.value=“HK-EN”;
lop16.innerHTML=“HK-EN”;
tdc3a.appendChild(lop1);
tdc3a.apendchild(lop2);
tdc3a.apendchild(lop3);
tdc3a.apendchild(lop4);
tdc3a.apendchild(lop5);
tdc3a.apendchild(lop6);
tdc3a.appendChild(lop7);
tdc3a.apendchild(lop8);
tdc3a.appendChild(lop9);
tdc3a.apendchild(lop10);
tdc3a.apendchild(lop11);
tdc3a.apendchild(lop12);
tdc3a.apendchild(lop13);
tdc3a.apendchild(lop14);
tdc3a.apendchild(lop15);
tdc3a.apendchild(lop16);
文件.正文.附件(tdc3);
文件.正文.附件(tdc3a)
  • 有必要将
    数据列表
    元素附加到
    正文
    或文档中的任何其他元素,例如
  • document.body.appendChild(tdc3a)

  • 目前,浏览器似乎忽略了
    输入的
    属性设置后插入DOM的
    数据列表。因此,在设置
    输入
    列表
    属性之前,将
    数据列表
    插入DOM是很重要的。例如:

  • Datalist并不适用于所有浏览器,例如,截至2016年7月,Safari和Firefox不支持Datalist。另见


  • 嗨@Andrew,我附加的代码是我原始代码的一部分。我有你在我的原始代码中建议的代码。仅供参考,如果没有那行代码,我甚至不能在我的问题中附上截图,对吗?2.谢谢你推荐一个不错的网站,我刚刚把它加入了书签,哈哈:)。我实际上是在使用IE。在我尝试将JS代码注入页面之前,我已经尝试将它们注入到我自己创建的虚拟页面中,我的所有代码都完全正常工作,但不是在我提到的aspx页面中。我在您的代码中看到,您将输入附加到页面的DOM中,但似乎没有附加
    tdc3a
    datalist
    任何地方?好的,问题中的代码段中添加了一行代码。但我的问题还是一样。请告知。似乎浏览器中存在问题,至少在Chrome中是这样,在设置
    输入的
    列表属性后,不允许插入数据列表。在设置
    输入
    列表
    属性之前,或者甚至在创建输入本身之前,需要将
    数据列表
    插入DOM。我创建了一个演示,其中动态创建的
    数据列表
    以这种方式运行良好,请参见。感谢分享您创建的演示,这非常好。就我目前的情况而言,我确实能够将我的代码注入到一个由我自己创建的HTML虚拟页面中,并且代码完全符合我的预期。我唯一不明白的是,当我试图向.aspx页面中注入与我在问题中提到的相同的代码时,
    datalist
    为什么不起作用。仅供参考,我还用更多信息更新了问题,这些信息可能会更详细地说明我的问题。