繁体   English   中英

getElementById问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM