我无法从公司使用的基于Web的系统中的特定表单中获取字符串的值。
在浏览器中打开时,它包含三个表单(非框架)。薄的左侧菜单表单,顶部的薄水平横幅横幅表单以及其余80%的右下角加载在我正在构建的表单中。
我需要能够从名为“ mainForm”的顶部横幅表单中获取一个字符串。
此字符串是动态填充的,因为未设置,它只是出现在TD标签之间。另外,它所在的TD元素没有id或名称,但是它是类“ userName”的唯一实例。
我尝试了几种排列方式来尝试访问此类/字符串组合。
我尝试过的例子:
document.getElementsByClassName("userName")
document.querySelector('form[name="mainForm"] .userName').innterHTML
document.getElementsByClassName("userName")[0].innerText
document.mainForm.querySelector('.userName').innerText
document.forms.mainForm.getElementsByClassName('userName')
mainForm.getElementsByClassName("userName")
window.form["mainForm"].getElementsByClassName("userName")
document.form["mainForm"].getElementsByClassName("userName")
window.parent.document.getElementsByClassName("userName")
<!--Excerpts of code-->
<form name="mainForm" style="margin: 0px;" action="">
<table>
<tr>
<td align="right" class="userName" nowrap="">Target Text</td>
</tr>
</table>
</form>
<form id="myForm" method="post" action="">
<button type="button" id="btnLog" name="btnLog" onclick="getLog()">Get
Log</button>
</form>
function getLog() {
var elementLog = document.getElementsByClassName("userName");
var log = elementLog.textContent;
alert(log);
}
我希望alert(log)返回userName类的字符串值。
实际发生的是警报触发并显示“未定义”或控制台错误,导致无法获取未定义或空引用的属性。
答案 0 :(得分:2)
我相信您正在寻找的是innerHTML
(而不是innterHTML
):
function getLog() {
var elementLog = document.getElementsByClassName("userName")[0];
var log = elementLog.innerHTML;
console.log(log);
}
<!--Excerpts of code-->
<form name="mainForm" style="margin: 0px;" action="">
<table>
<tr>
<td align="right" class="userName" nowrap="">Target Text</td>
</tr>
</table>
</form>
<form id="myForm" method="post" action="">
<button type="button" id="btnLog" name="btnLog" onclick="getLog()">Get
Log</button>
</form>
答案 1 :(得分:0)
function getLog() {
alert(document.getElementsByClassName("userName").item(0).innerText);
}
似乎已经解决了问题!
用.item(0)
代替[0]
将您的javascript函数放在<head></head>
标签之间也很重要
或通常在致电给他们之前!