为什么getElementById不适用于<script> ...标签,但使用php echo'<script> </script>

时间:2013-03-03 11:51:22

标签: php jquery select echo

我的页面上有一个选择选项&amp;根据所选选项加载syslogout.php我写了这段代码:

echo '<script type="text/javascript">$("#divSys").mouseup(function() { 
 var open = $(this).data("isopen");
 if(open) { 
   window.location="sysLogout.php?sysid="+document.getElementById("divSys").value; 
 }
 $(this).data("isopen", !open); });
</script>';

工作正常。但是这段代码:

<script type="text/javascript">$("#divSys").mouseup(function()  {
   var open = $(this).data("isopen"); 
   if(open) { 
      window.location="sysLogout.php?sysid="+document.getElementById("divSys").value; 
   }
   $(this).data("isopen", !open); });
</script>

它不起作用,并且sysid的返回值是针对所有选项的修复(例如1或2)。 为什么呢?

2 个答案:

答案 0 :(得分:0)

将您的代码包裹在$(document).ready()中。这应该可以解决您的问题:

<script type="text/javascript">
    $(document).ready(function () {
        $("#divSys").mouseup(function() { 
             var open = $(this).data("isopen"); 
             if(open) { 
                 window.location="sysLogout.php?sysid="+document.getElementById("divSys").value; 
             } 
             $(this).data("isopen", !open); 
        });
    });
</script>

答案 1 :(得分:0)

试试这个:

<script type="text/javascript">
    $(document).ready(function () {
        $("#divSys").mouseup(function() { 
             var open = $(this).data("isopen"); 
             if(open) { 
                 window.location="sysLogout.php?sysid="+$(this).val(); 
             } 
             $(this).data("isopen", !open); 
        });
    });
</script>