簡體   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