Javascript 使用eval引用跨度图元
我有一个函数,它引用一个Javascript 使用eval引用跨度图元,javascript,Javascript,我有一个函数,它引用一个输入,并用最后一行相应地更改它的值: eval('document.forms[0].telephone').value = $telephone[$i]; 但是,我需要将中显示的内容移动到span,并需要正确引用它。目前,input有一个name和一个id“country”,我相信我的eval()引用的是name 我的span没有名称,而是有classtel前缀 我尝试通过以下方式(以及多种组合方式)引用它,但都不起作用: eval('document.forms[0
输入
,并用最后一行相应地更改它的值:
eval('document.forms[0].telephone').value = $telephone[$i];
但是,我需要将中显示的内容移动到span
,并需要正确引用它。目前,input
有一个name
和一个id
“country”,我相信我的eval()
引用的是name
我的span没有名称
,而是有classtel前缀
我尝试通过以下方式(以及多种组合方式)引用它,但都不起作用:
eval('document.forms[0].tel-prefix').value = $telephone[$i];
eval('.tel-prefix').value = $telephone[$i];
eval('.tel-prefix').text= $telephone[$i];
$('.tel-prefix').value = $telephone[$i];
$('.tel-prefix').value($telephone[$i]);
如何让我的eval()
更改我的span
的值
完整JS
$telephone = new Array(4)
$telephone [0] = "+93"
...
$telephone [246] = "+260"
$telephone [247] = "+263"
function getTelephone($selectedIndex) {
$selectBox = document.forms[0].spch_country;
if ($selectBox.options[$selectedIndex].value != 'none') {
for ($j = 0, $i = $selectedIndex; $i < $selectedIndex + 1; $j++, $i++) {
eval('document.forms[0].tel-prefix').value = $telephone[$i];
}
}
}
$telephone=新阵列(4)
$telephone[0]=“+93”
...
$telephone[246]=“+260”
$telephone[247]=“+263”
函数getTelephone($selectedIndex){
$selectBox=document.forms[0].spch_country;
如果($selectBox.options[$selectedIndex].value!=“无”){
对于($j=0,$i=$selectedIndex;$i<$selectedIndex+1;$j++,$i++){
eval('document.forms[0].tel前缀')。值=$telephone[$i];
}
}
}
首先,使用eval
是完全没有道理的,因为没有任何东西需要这样评估。最初的代码应该是:
document.forms[0].telephone.value = $telephone[$i];
eval
函数将字符串计算为代码,这通常与风险和类似风险相关。实际上,不需要使用eval
访问元素,即使使用动态字段名,也可以不使用eval
按名称访问元素。例如:
var formNumber = 0;
var fieldName = "telephone";
document.forms[formNumber][fieldName].value = $telephone[$i];
返回到
span
;在现代浏览器中,您可以使用来使用类名查找它。然后使用innerHTML
属性设置内容:
document.querySelector('.tel-prefix').innerHTML = $telephone[$i];
要在较旧的浏览器中工作,如果您可以在span中添加一个id(例如id=“telPrefix”
),则可以使用getElementById
方法:
document.getElementById('telPrefix').innerHTML = $telephone[$i];
可以使用类名查找元素,但是您需要循环页面中的所有元素,直到在不支持
querySelector
方法的浏览器中找到它。只是一个建议,最好不要使用eval
。不幸的是,这不是我的代码。我甚至不知道什么是eval
!您使用的eval只返回元素。。。你可以从它周围放下eval,直接访问节点。。。此外,eval('.class')不会返回类似的内容。试试$(“.tel prefix”)…您能显示完整的javascript代码吗?