用jQuery更改href。 $(id).attr(“href”,“url”)不起作用

时间:2017-03-04 07:40:25

标签: jquery

我试图让推文按钮与我的报价机器分享报价。为此,我尝试将其更改为href; -

$("#twitter-widget-0").attr("href", "https://twitter.com/intent/tweet?ext=" + thisQuote);

但由于某种原因它不起作用。可能是什么问题。

P.S。我的html中未定义"#twitter-widget-0",但这是twitter按钮创建的呈现iframe的ID。

这是我的笔:http://codepen.io/s4ek1389/pen/zZGNWw?editors=0110

HTML:

<a href="https://twitter.com/share" class="twitter-share-button" data-size="large">Tweet</a>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

JS:

$(document).ready(function(){

  $("#gen").on("click", function(){
    $.ajaxSetup({cache:false});
$.getJSON("http://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1&callback=", function(json) {

  var author = "";
  var quote = "";

  json.forEach(function(val){
    author+= val.title;    
   quote+= val.content;
  })


  $("#author").html(author);
  $("#mainquote").html(quote);
  var thisQuote = quote + " " + author;
  $("#twitter-widget-0").attr("href", "https://twitter.com/intent/tweet?ext=" + thisQuote);
});
  });    


  });

1 个答案:

答案 0 :(得分:0)

如果因为$("#twitter-widget-0").attr("href", "https://twitter.com/intent/tweet?ext=" + thisQuote);被放置在Generate Quote按钮(“click”)功能中而无法正常工作。因此,只有在首次点击Generate Quote按钮时才有效。

如果我将代码置于$(document).ready下,则可行。但没有我的thisQuote var,因为它不是全局变量。