如何定义变量以在JQuery和javascript之间传递数据?

时间:2014-07-28 01:13:53

标签: javascript jquery

你好再次:)我有以下代码:

<script type="text/javascript" language="javascript">
$(document).ready(function () {
   $(function () {
       $('body').on('click', 'a.myclass', function () {
           sndcmpnm = $(this).attr("value");
           alert("From Small Function :" + sndcmpnm);
       });
   });
});
</script>

在底部的页面中,我有一个简单的javascript行var deares = sndcmpnm;。有趣的是,无论我做什么,deares永远不会获得sndcmpnm的价值。我尝试了SO的另一个解决方案,它说我不能把var置于变量的前面,但这也无济于事。警报alert("From Small Function :" + sndcmpnm);给出了正确的结果。 java错误代码东西说

  

ReferenceError:未定义sndcmpnm

我想要的只是deares可以获得sndcmpnm的值。我不知道自己做错了什么,请帮助我:(

[编辑] 其他代码:

<script>
function discomp()
{
  alert("hello1");
  var deares = sndcmpnm;
  alert("hello2");
  alert("This is suppose to hold the sndcmpnm data :" +deares);
}
</script>

2 个答案:

答案 0 :(得分:2)

只需在sndcmpnm标记的全局范围内定义script即可。 (而且您只需准备一份文档,$(function() { ... }$(document).ready(function() { ... }的简写。)

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

var sndcmpnm = '';

$(function() {

    $('body').on('click', 'a.myclass', function() {

        sndcmpnm = $(this).attr("value") ;
        alert("From Small Function :" + sndcmpnm);

    });

});

</script>

<script>
function discomp() {
  var deares = sndcmpnm;
  alert("This is suppose to hold the sndcmpnm data: " + deares);
}
</script>

答案 1 :(得分:0)

您可以在事件处理程序中调用discomp函数:

<script type="text/javascript" language="javascript">
function discomp(message)
{
  alert("This is suppose to hold the sndcmpnm data :" + message);
}

$(function () {
    $('body').on('click', 'a.myclass', function () {
        var sndcmpnm = $(this).attr("value");
        discomp(sndcmpnm);
    });
  });
});
</script>