【发布时间】:2017-05-01 11:09:17
【问题描述】:
我正在制作一个随机报价生成器。但我无法通过推特分享。我得到一个推特页面,但推文的文本框是空的。
<!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。我做得对吗?
【问题讨论】:
-
你怎么知道你的
href没有被添加?我刚刚制作了一个非常简单的 JSFiddle,以表明您的方法应该可以正常工作:jsfiddle.net/errd1p37/1。这也让我想到了下一个问题:你为什么要在button中添加href? -
href已添加。我可以在控制台中看到。但是当我点击按钮时,它会转到https://twitter.com/intent/tweet而不是https://twitter.com/intent/tweet?text=" + data.quoteText+data.quoteAuthor。所以我没有在文本框中看到推文。 -
您将
href应用于<button>,但您应该将其应用于<a>。只需将$('#twitter-share-button').attr("href", quot);更改为$('#twitter-share-button').parent().attr("href", quot);。 -
谢谢桑蒂。我正在更改不存在的按钮的
href。但是为什么控制台没有报错呢? -
您的按钮存在!它在您的
<a>标签内:<button type="button" id="twitter-share-button">tweet</button>
标签: javascript jquery