[英]getElementById issue
我有这个按钮:
<input type="button" value="Rep"
id="rep" name="rep" class="rep" style="width:50px"
onclick="triggerLabel(1);this.disabled=true;addRep(<?php echo $comment_id; ?>);"/>
<script type="text/javascript">
function triggerLabel($commentID)
{
var $theID="#"+$commentID;
var $label=document.getElementById($theID).value;
alert($label);
}
</script>
警报未触发。 我想获取commentID并将其转换为字符串。而且我希望该字符串代表我的元素ID。 警报起作用,它检索#25。 那是我给我的一个标签提供的ID。
echo '<label id="'.$comment_id.'">'.$avatarRep.'</label>';
它应该检索该标签,但不幸的是它失败了。
错误:document.getElementById($ theID)为空源文件: http://localhost/PoliticalForum/Thread/thread.php?threadID = 15&page = 1行:246
我该怎么办?
这就是我查看源页面时html标签控件的外观:
<label id="25">6</label>
更新:我更新了答案。 看一看:
var $label=document.getElementById($commentID);
$label.value=9999;
桌子上没有插入9999。为什么?!?
更新2:这不起作用:
document.getElementById($commentID).value="88888";
标签未更改。
您不必为getElementById
提供#
。 只是ID。 所以写:
var $label=document.getElementById($commentID).value;
另一种选择是通过JQuery $
函数获取元素。 然后,您必须提供#
:
var $label=$($theID).val()
document.getElementById("your_id_without_#_char")
将返回HTML元素。
$("#your_id_with_#_char")
将返回jQuery对象。
您不应该将#
用于document.getElementById()
函数-仅使用elem ID。
不要在您的CommentID中添加“#”。 写:
function triggerLabel($commentID)
{
var $theID=$commentID;
var $label=document.getElementById($theID).value;
alert($label);
}
document.getElementById()
不是jQuery,它是DOM函数,因此您无需在id的前面放置#
正确使用getElementById
,即删除#
:
var $label = document.getElementById($commentID);
或使用jQuery:
var $label = $($theID);
请注意, label
s没有value
属性。 如果要获取内部文本,请对jQuery使用innerHTML
或.text()
。
另外,在HTML5之前,不允许以数字开头的ID。
如果要在ID前面使用# ,则可以使用querySelector
方法,但与旧版浏览器不兼容。
不兼容:IE <8,FFox <3.5,Opera <10,Safari <3.2
https://developer.mozilla.org/En/DOM/Document.querySelector
document.querySelector('#id');
您不应该在情况下使用哈希
document.getElementById('#id');
在jQuery中,您可以使用哈希
$('#id');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.