代码如下:
input style="display: none;" id="xmlContent" name="xmlContent" value="<%=xmlContent%>"/>
其中:xmlContent的值为html,如何获取input标签的值?
同时,var xmlContent= document.getElementById("xmlContent").value;
试过不行,大佬们,有其他方法吗?
var xmlContent= document.getElementById("xmlContent").value; 你这行代码写到哪里了? 写到JS方法里面才有效啊。建议你看一下网页加载html标签和js的顺序,参考下:https://www.jb51.net/article/98317.htm
这不是自我循环嘛,,啥样的需求能写出这种代码
可能是因为取值发生在赋值前
有先后顺序的问题
试试在页面加载完成后再调用
比如:
window.onload=function (){
var xmlContent=document.getElementById("xmlContent").value;
console.log(xmlContext)
}
可能的原因1:
在全局环境下的代码是在页面解析阶段从上到下一边解析一边执行的,这时处于代码下面的页面元素还没有解析完,访问不到。
要把script放在页面body标签的最下面,或者使用window.onload事件(页面解析完成后触发)才可以。
原因2:
页面上有多个id="xmlContent"的元素。
页面元素的id应该是唯一的,id不要重复,重复的id用document.getElementById()获取时,只能获取到第一个。
要获取多个元素时,应该用元素的class,并用getElementsByClassName()获取元素数组。
如果你一定要用id的话,也可以用 document.querySelectorAll("#id") 获取多个元素。
原因3:
如果<%=xmlContent%>输出的内容中有双引号("),会与value=""的双引号起冲突,需要在服务器端输出时把双引号替换成"
另外如果<%=xmlContent%>输出的内容是多行文本要改用 <textarea></textarea> 标签。
现在浏览器中可以这样写
var myValue=edt1.value