簡體   English   中英

在JS函數中返回值

[英]Returning values inside a JS function

有人可以向我解釋為什么我不能在函數內部使用document.getElementById('id')。value嗎?

我試圖制作一個簡單的乘法腳本(我在學習JS,實際上很有趣),並很快意識到,僅僅為了返回一個值而輸入整行代碼是多么煩人,所以我寫了一個小函數:

<script type="text/javascript">
function value(elementid){
return document.getElementById(elementid).value
}
</script>

但是,這不起作用,只會破壞整個腳本的功能。 我只想鍵入value('id')以返回元素的值。

為了解決這個問題,一位朋友建議我在函數中取出.value並將其添加到我調用該函數的每一行的末尾,例如value('id')。value。

為什么我的第一種方法不起作用?

謝謝您的幫助!

將函數名稱更改為類似於“ getValue ”的名稱。 這段代碼在我的機器上可用:P

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<script type="text/javascript">
    function getvalue(id) {return document.getElementById(id).value;}
</script>
</head>
<body>
    <input type="text" id="Text1" />
    <input type="button" onclick="alert(getvalue('Text1'))" /> <br />

    <input type="text" id="Text2" />
    <input type="button" onclick="alert(getvalue('Text2'))" /> <br />

    <input type="text" id="Text3" />
    <input type="button" onclick="alert(getvalue('Text3'))" /> <br />

</body>
</html>

您確定要獲取的元素具有value屬性,而不是諸如.text或...之類的其他元素嗎?

如果它是INPUT標記,則也可以使用.value和其他一些HTML控件元素,但是對於常規DIV,SPAN等。我認為它們沒有公開.value屬性。 檢查標簽文檔以查看它們是否支持.value。

我相信羅紹走上正軌。 您可以通過將<script>塊移動到頁面的末尾來進行測試,因為除非您具有復雜的頁面結構,否則希望到那時所有內容都會加載。

並非每個DOM元素都有一個名為value的屬性,這可能就是腳本中斷的原因。 您可以嘗試以下方法:

<script type="text/javascript">
    function value(elementid){
        var el = document.getElementById(elementid);
        return el.value || el;
    }
</script>

如果存在或不只是元素,它將返回el.value。 這不是最優雅的解決方案,但它可能會阻止您破壞其他腳本。 在不知道調用該函數的上下文的情況下,我無能為力

您正在做的事情應該起作用。 這叫什么? 調用時,您的元素可能不在DOM中。 即在實際元素之前以內聯腳本調用它。

將函數的名稱從“值”更改為其他名稱

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM