2016-12-15 81 views
0

我正在做一个随机报价生成器。但我无法通过Twitter分享它。我收到一个推特页面,但推文的文本框是空的。随机报价生成器:按钮与Jquery

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="UTF-8"> 
    <title>title</title> 
    <link rel="stylesheet" type="text/css" href="style.css"> 
    </head> 
    <body> 
    <div id="div1"> 
    <p id="quote"></p> 
    <p id="author"></p> 
<button id="btn">getquote</button> 
<div> 
<a href="https://twitter.com/intent/tweet" target="_blank"> 
<button type="button" id="twitter-share-button">tweet</button> 
</a> 
    </div> 
    </div> 

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> 
    <script src="script.js"></script> 

    </body> 
</html> 

这里是我的Javascript代码

var url1="http://api.forismatic.com/api/1.0/?method=getQuote&key=457653&format=jsonp&lang=en&jsonp=?"; 

//var url1=" http://date.jsontest.com/"; 


var getQuote=function(data){ 
    //console.log(data); 
    var quot="https://twitter.com/intent/tweet?text=" + data.quoteText+data.quoteAuthor; 
    console.log(quot); 

    $('#quote').text(data.quoteText); 
    $('#author').text(data.quoteAuthor); 
    $('#twitter-share-button').attr("href", quot); 
}; 

$(document).ready(function(){ 
$.getJSON(url1,getQuote,'jsonp'); 

}); 
$("#btn").on("click",function(){ 
    $.getJSON(url1,getQuote,'jsonp'); 

}); 

我得到的报价随意,但在我的代码点击鸣叫按钮犯规jQuery中使用.attr改变href。我做得对吗?

+0

你怎么知道是不是被添加到'href'?我刚刚制作了一个非常简单的JSFiddle来显示你的方法应该工作得很好:https://jsfiddle.net/errd1p37/1/。这也给我带来了我的下一个问题:你为什么要在'button'中添加'href'? – Santi

+0

增加'href'。我可以在控制台中看到。但是,当我点击按钮时,它会转到“https:// twitter.com/intent/tweet”,而不是“https://twitter.com/intent/tweet?text=”+ data.quoteText + data.quoteAuthor'。所以我没有在文本框中看到鸣叫 – vish09

回答

0

我不知道我是否只是缺少一些东西,但它看起来像你试图改变按钮的href属性,但该按钮没有href属性(可能不应该) 。

$('#twitter-share-button').attr("href", quot); 

相反,你想要做

$('#twitter-share-anchor').attr("href", quot); 

,并给予实际的锚ID:

<a id="twitter-share-anchor" href="https://twitter.com/intent/tweet" target="_blank"> 
+0

OH是的!!谢啦。但为什么我没有得到像“按钮没有'HREF'属性”或类似的错误?你能解释一下吗? – vish09

+0

你没有得到一个错误的原因是因为,在编码方面,一个错误实际上并没有发生:即 - 你添加了一个href属性到一个按钮元素,这不是HTML中最好的做法但它也不是'无效的'。这是你可以在jQuery中做的事情,并且它正在完成。其次,您使用https://twitter.com/intent/tweet的主要网址激活了Twitter链接,实际上这不是无效操作。您可以使用未附加变量的twitter链接,并且有些人希望这样做,因为他们想要转到空白页面,所以这是合法的选项。 – Sabir

0

你申请的href的按钮,而不是它的含<a>。因为<a>是你的按钮直接家长,您可以轻松地只是改变你的$('#twitter-share-button').attr("href", quot);线包括.parent(),像这样:

$('#twitter-share-button').parent().attr("href", quot);