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