У меня есть несколько ссылок, которые при нажатии на них передают переменную через другую часть страницы.

Тем не менее, по некоторым причинам, я не могу понять это! Что мне не хватает?

<head>
<script type="text/javascript">

function myFunction(a){
  myid="Hi There!"+a;
  return myid;
}
</script>
</head>
<body>
<a href="#" OnClick="myFunction(123456);">Click Me</a><br />


<script type="text/javascript">
document.write(myid);
</script>

</body>
0
rumblestrut 24 Авг 2010 в 17:09

5 ответов

Лучший ответ

Вы тут немного запутались. Даже если функция возвращает значение, ей не к чему ее возвращать. Попробуй это:

    <head>
    <script type="text/javascript">

    function myFunction(a){
      myid="Hi There!"+a;
      document.getElementById("debug").innerHTML = myid;
    }
    </script>
    </head>
    <body>
    <a href="#" OnClick="myFunction(123456);">Click Me</a><br />


<div id="debug"></div>

</body>
3
Tom Gullen 24 Авг 2010 в 13:12

Вот простой пример некоторых подобных вещей:

<a href="#" type="button" OnClick="myf=myfunc(1234);alert(myf)" value="clickme">clickme</a> or  <a href="#" type="button" OnClick="myf=myfunc(1234);document.getElementById('other').value=myf;" value="clickme">ClickMeAlso</a>
<input id='other' type='text'/>

<script>
function myfunc(a) {
    return a + " howdy";
};
</script>

Вы можете увидеть это в действии здесь: http://jsfiddle.net/5Sbn2/

-2
Mark Schultheiss 24 Авг 2010 в 18:58
<script>
// This is global
var myid = ''

myfunc = function(a){
    myid = "Hi There!" + a;
    alert(myid);
}

test_global = function(){
    alert(myid);
}
</script>

<a href="javascript:void(0);" onclick="myfunc(12345);">Set MYID</a>
<input type="button" onclick="test_global();" value="Test MYID" />
0
user429683 24 Авг 2010 в 15:05

Когда вы нажимаете на ссылку, все, что происходит, - это то, что вызывается myFunction (), которая возвращает строку. Строка document.write(myid); больше не выполняется, поэтому ничего не видно.

0
Nick 24 Авг 2010 в 13:14

Если вы хотите использовать его позже, вам нужно объявить myid как глобальную переменную. его область действия в настоящее время только в пределах myFunction. Кроме того, функция document.write () будет выполняться только во время выполнения, поэтому вам нужно иметь другую функцию, которая выполняет ее при каждом нажатии, или просто объединить их.

0
JiminyCricket 24 Авг 2010 в 13:14