Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Jquery将变量传递到链接的一部分_Javascript_Jquery - Fatal编程技术网

Javascript 使用Jquery将变量传递到链接的一部分

Javascript 使用Jquery将变量传递到链接的一部分,javascript,jquery,Javascript,Jquery,我正在使用dynamics,我正在尝试从表单中引入一个变量,并使用它创建一个动态URL以下是我的代码: <html> <head> <meta charset="utf-8"> <script src="new_/jquery.js"></script> <script> $( document ).ready(function() { var $productid

我正在使用dynamics,我正在尝试从表单中引入一个变量,并使用它创建一个动态URL以下是我的代码:

<html>
  <head>
    <meta charset="utf-8">
    <script src="new_/jquery.js"></script>

    <script>
      $( document ).ready(function() {
        var $productid = attr("src",parent.window.Xrm.Page.getAttribute('new_productid').getValue());
      });
    </script>
  </head>
  <body style="word-wrap: break-word;">
    <div style="align: center;">
      <script type="text/javascript">
        document.write('<a href="http://www.mywebsite.com/products/'+productid+'">Link to some site</a>');
      </script>
    </div>
  </body>
</html>

$(文档).ready(函数(){
var$productid=attr(“src”,parent.window.Xrm.Page.getAttribute('new_productid').getValue());
});
文件。写(“”);

有人知道我做错了什么吗?

在声明变量之前,脚本正在运行,在jQuery
ready()
函数中声明变量,这是在执行脚本块之后发生的。将js脚本移动到函数中,并在
ready()
函数中声明变量后调用它。

您有3个问题:

  • $productid
    vs
    productid
  • $productid
    在回调函数中声明,因此与文档不在同一范围内。write调用
  • 即使
    $productid
    在全局范围内,您的
    文档。write
    调用也很可能在
    $(文档)之前发生。准备好了
    回调,因此
    $productid
    仍将不包含您期望的值
  • 因此,在ready回调中执行js工作,并在html中放置一个占位符锚定,一旦准备好就可以进行更改

    HTML


    另外,也不确定您调用的函数是什么,因为您没有在任何地方定义它,因此很可能会因此而出错

    很可能是
    $productid
    vs
    productid
    。删除
    $
    。此外,在未来,你应该解释正在发生的事情与你希望/预期发生的事情。你现在说的是出了点问题。当你不知道发生了什么事情时,通常很难发现哪里出了问题。还有你在
    中调用的
    attr
    函数是什么。ready
    回调,JS没有本地
    attr
    全局函数对不起,我想我知道的比我想象的还要少。我使用了一位朋友给我的一些示例代码并编写了这篇文章,现在这位朋友无法寻求帮助。发生了什么事而不是显示我的链接,它完全没有显示任何内容。除此之外,
    productid
    从未在任何地方定义过,即使它取代了
    $productid
    $productid
    即使在
    ready()之后运行,也不在另一个脚本的范围内
    
    <div style="align: center;">
      <a href="#" id="linkToChange">Some text</a>
    </div>
    
    $( document ).ready(function() {
        var $productid = attr("src",parent.window.
                                    Xrm.Page.
                                    getAttribute('new_productid').getValue());
        $("#linkToChange").attr("href","http://www.mywebsite.com/products/'+$productid);
    });