如何使用 href 链接将 JavaScript 变量作为参数传递?

3 html javascript

我有一个 JavaScript 变量,我想将其与 HTML 链接一起传递。

<script>
var demo=10;
</script>
Run Code Online (Sandbox Code Playgroud)

我在执行一个 javascript 函数和几个 if-else 和 for 循环时获得了演示的价值。由于该代码对这个问题没有任何意义,因此我没有包含该代码。假设在所有这些操作之后,我得到的最终结果存储在 demo 变量中。现在我想传递这个演示变量以及一个链接。

<a href="to_fake_page.php">On click pass demo</a>
Run Code Online (Sandbox Code Playgroud)

我试图将 demo 变量作为参数传递给 href 链接。这可能吗???

我知道

window.location.href = "to_fake_page.php?demostore=demo";
Run Code Online (Sandbox Code Playgroud)

也会做同样的事情。

更新

这是我的 JavaScript 函数

该函数有一个parameter,它被传递到a_php_page.php执行一些数据库操作和条件检查的位置,并且相应的结果以 JSON 形式从 PHP 页面传回 AJAX 函数。我解析 JSON 并获取demo变量。如果我从 PHP 页面得到响应,则会包含 HTML 模式。在 HTML 模式中,我有一个链接,to_fake_page.php指向单击链接时必须传递 demo 变量的位置On click pass demo

 function onefunction(parameter)
   {
       if(window.XMLHttpRequest)
       {
           xmlhttp=new XMLHttpRequest();
       }
       else
       {
           xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
       }
       xmlhttp.onreadystatechange=function() //callback fn
       {
           if(xmlhttp.readyState==4 && xmlhttp.status==200)
           {
               // these values are obtained from a php page using AJAX.
               // An array has been passed from the php page after json encoding it.

               var jsonStr = JSON.parse(xmlhttp.responseText);
               var demo=jsonStr.value1;
               document.getElementById('myLink').href += '?demo=' + encodeURIComponent(demo);

               $('<div class="modal fade">' +
                   '<div class="modal-dialog">' +
                   '<div class="modal-content">' +
                   demo+
                   '</div>' +
                   '<div class="modal-footer">' +
                   '<a href="to_fake_page.php" id="myLink">On click pass demo</a>' +
                   '</div>' +
                   '</div>' +
                   '</div>' +
                   '</div>').modal();

           }
       }
       xmlhttp.open("GET","a_php_page.php?from="+parameter,true);
       xmlhttp.send();
   }
Run Code Online (Sandbox Code Playgroud)

dev*_*r82 5

您需要做的(在完成所有逻辑之后,并且您在变量中拥有所需的值)是更改链接的 href 。

像这样的东西:

var demo = 123;
document.getElementById('myLink').setAttribute('href', 'somelink.php?demo=' + demo);
Run Code Online (Sandbox Code Playgroud)

还为您提供示例代码:

http://jsfiddle.net/x8tgktv6/

  • 更容易使用该属性:`document.getElementById('myLink').href += '?demo=' + demo;`。;-) 哦,*demo* 的值也应该是 [*URI 编码*](http://ecma-international.org/ecma-262/5.1/#sec-15.1.3.4),所以 `... += '?demo=' +encodeURIComponent(demo);`。 (4认同)