2011-12-11 96 views
0

我有這個按鈕:的getElementById問題

<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>'; 

應該檢索標籤,但不幸的是它fails..I得到這樣的:

Error: document.getElementById($theID) is null Source File: http://localhost/PoliticalForum/Thread/thread.php?threadID=15&page=1 Line: 246

我該怎麼辦?

這就是標籤HTML控件的外觀,當我查看源頁面,如:

<label id="25">6</label> 

更新: 我更新了我的答案。看一看:

var $label=document.getElementById($commentID); 
$label.value=9999; 

9999沒有插入表中。爲什麼?!?

更新2: 這不工作:

document.getElementById($commentID).value="88888"; 

標籤心不是改變。

+0

只有一件事 - '

+0

查看我的答案,'label's沒有'value'屬性。改用'innerHTML'。 –

+0

感謝它已經工作 –

回答

1

要麼使用getElementById正確,即刪除#

var $label = document.getElementById($commentID); 

或使用jQuery:

var $label = $($theID); 

請注意,label s沒有value屬性。如果您想獲取內部文本,請使用innerHTML.text()和jQuery。

此外,在HTML5之前,不允許以數字開頭的ID。

2

您不必爲getElementById提供#。只是ID。 所以寫:

var $label=document.getElementById($commentID).value; 

另一種選擇是通過JQuery的$函數獲取的元素。那麼你必須提供的#

var $label=$($theID).val() 
1

不要將「#」添加到您的CommentID。 寫:

function triggerLabel($commentID) 
{ 
    var $theID=$commentID; 
    var $label=document.getElementById($theID).value; 
    alert($label); 
} 
1

document.getElementById()不是jQuery的,這是一個DOM功能,所以你不需要把#在ID前面

+1

getElementById是DOM,而不是本地JS – Quentin

+0

是的,你是對的:) – haynar

2

document.getElementById("your_id_without_#_char")會返回你的HTML元素。

$("#your_id_with_#_char")會返回你jQuery對象。

您不應該使用#作爲document.getElementById()函數 - 只是elem ID。

1

如果您想在您的ID前面使用,您可以使用querySelector方法,但與舊版瀏覽器不兼容。

Incompatible with: 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');

+0

「其他瀏覽器」?除了什麼? – Quentin

+0

我的意思是老:P – Trevor