0

JavaScript で動的な Twitter ボタンを作成しようとして問題が発生しています。私がプログラミングしている電卓の出力をつぶやくためのtwitterボタンを取得しようとしています。問題は、ボタンが表示されないことです。私は何を間違っていますか?助けてください。

var twit_link = document.createElement('a');
  twit_link.setAttribute('href', 'https://www.twitter.com/share');
  twit_link.setAttribute('class', 'twitter-share-button');
  twit_link.setAttribute('url', 'http://www.twitter.com/obamamakes';
  twit_link.setAttribute('data-count', 'none');
  twit_link.setAttribute('data-via', 'ObamaMakes');
  twit_link.setAttribute('data-text', 'In the time it takes me to ' + activity + ', Barack Obama makes $' + i.toFixed(1);
  twit_link.innerHTML = "Tweet";

  $("#CalcOutput").html("In the time it takes me to <span class=\"num\">" + activity + "</span>,<br />Barack Obama makes $<span class=\"num\">" + i.toFixed(1) + "</span>");

  $("#CalcOutput").append(twit_link);

みんなが提案した変更を加えましたが、電卓が生成するはずの出力全体が、まだ Twitter ボタンと一緒に表示されません。電卓コードも提供する必要がありますか?

4

3 に答える 3

0

構文が正しくありません。いくつかの終了括弧がありません:

var twit_link = document.createElement('a');
  twit_link.setAttribute('href', 'https://www.twitter.com/share');
  twit_link.setAttribute('class', 'twitter-share-button');
  twit_link.setAttribute('url', 'http://www.twitter.com/obamamakes'); // missing ) here
  twit_link.setAttribute('data-count', 'none');
  twit_link.setAttribute('data-via', 'ObamaMakes');
  twit_link.setAttribute('data-text', 'In the time it takes me to ' + activity + ', Barack Obama makes $' + i.toFixed(1)); // missing ) here
  twit_link.innerHTML = "Tweet";

  $("#CalcOutput").html("In the time it takes me to <span class=\"num\">" + activity + "</span>,<br />Barack Obama makes $<span class=\"num\">" + i.toFixed(1) + "</span>");

  $("#CalcOutput").append(twit_link);

これは、ブラウザの開発者ツールで確認できます。コンソールにエラーが表示されます。

Abdullahが述べたように、とにかくjQueryを使用してこれらすべてを実行できます。

var twit_link = $('<a/>', {
    href: 'https://www.twitter.com/share',
    'class': 'twitter-share-button',
    url: 'http://www.twitter.com/obamamakes',
    'data-count': 'none',
    'data-via': 'ObamaMakes',
    'data-text': ... // whatever you want here
    }).text('Tweet');
$("#CalcOutput").html("In the time it takes me to <span class=\"num\">" + activity + "</span>,<br />Barack Obama makes $<span class=\"num\">" + i.toFixed(1) + "</span>");
$("#CalcOutput").append(twit_link);

jsFiddleの例

于 2012-10-16T18:14:31.440 に答える
0

jQueryを使用したjsFiddle(のみ):

$(document).ready(function(){
//TEst Data - Starts
    var activity = 'Test';
    var i = 12;
//Test Data Ends
var twit_link = $('<a />');
twit_link.attr('href', 'https://www.twitter.com/share');
twit_link.addClass('twitter-share-button');
twit_link.attr('url', 'http://www.twitter.com/obamamakes');
twit_link.attr('data-count', 'none');
twit_link.attr('data-via', 'ObamaMakes');
twit_link.attr('data-text', 'In the time it takes me to ' + activity + ', Barack Obama makes $' + i.toFixed(1));
    twit_link.html('Tweet');

$("#CalcOutput").html("In the time it takes me to <span class=\"num\">" + activity + "</span>,<br />Barack Obama makes $<span class=\"num\">" + i.toFixed(1) + "</span>");
$("#CalcOutput").append(twit_link);

});
于 2012-10-16T18:15:56.220 に答える
0

いくつかの構文エラーがあります。とにかくjQueryを使用している場合は、これをクリーンアップできます。

var twit_link = $('<a>Tweet</a>');
twit_link.attr('href', 'https://www.twitter.com/share');
twit_link.attr('class', 'twitter-share-button');
twit_link.attr('url', 'http://www.twitter.com/obamamakes');
twit_link.data('count', 'none');
twit_link.data('via', 'ObamaMakes');
twit_link.data('text', 'In the time it takes me to ' + activity + ', Barack Obama makes $' + i.toFixed(1));

$("#CalcOutput").html("In the time it takes me to <span class=\"num\">" + activity + "</span>,<br />Barack Obama makes $<span class=\"num\">" + i.toFixed(1) + "</span>");
$("#CalcOutput").append(twit_link);
于 2012-10-16T18:10:24.737 に答える