2

在过去的 2 个小时里,我一直在寻找和测试这个问题的各种解决方案,但收效甚微,所以我只好寻求帮助。

我想构建一个引用数组,每个引用都有引用和链接,可以随机提取。我只需要让他们在页面刷新时进行更改。

但是,我有一些非常漂亮的 CSS 来设置块引用和引用的样式。

下面是一些 HTML 示例,用于说明数组中的内容如何适合引号:

<blockquote>
  <p>A line of oversize watches that can offer many of the attributes of premium luxury watches at an affordable price.
  </p>
  <cite>&mdash; 
    <a href="http://www.horozima.com/2012/07/terranaut-xl-50mm.html" target="_blank">Horozima
    </a>
  </cite>
</blockquote>

此代码的预期位置是 Big Cartel 产品(模板)页面,其中包含为每个产品自动生成的内容。因此,如果没有一些随机化的 JS,每个产品页面上都会有相同的引用。

4

2 回答 2

3

根据您的优势,您可以“快速而肮脏”地进行操作,也可以作为适当的解决方案。

正确的解决方案是让服务器端一些代码从数据库中提取随机行,并按上述方式呈现。由于您的标签与它无关,我会跳到

快速而肮脏的解决方案,即有一个 javascript 引号和链接数组,并显示一个随机的:

$(document).ready(function() {
  var questions = [
      {q: 'This is question 1', l: 'http://this.is.link1', a: 'Test' },
      {q: 'This is question 2', l: 'http://this.is.link2' , a:'Another'}
  ];

  var i = Math.floor((Math.random()*questions.length));

  $('blockquote p').html(questions[i].q);
  $('blockquote a').attr('href', questions[i].l);
  $('blockquote a').html(questions[i].a);
});

您可以在jsFiddle中看到它。它假设只存在一个块引用,但它可以很容易地扩展。你可以在你的 HTML 中输出一个单引号,使它在 JS 被禁用时看起来没问题。

于 2013-05-20T19:53:35.873 回答
2

在 DOMReady 上执行 JavaScript 以使用该random()函数生成一个随机数。如果将此数字乘以一个值,您将得到一个介于 0 和该值之间的随机数(但不包括该值本身)。如果将引号放入 JSON 数组,则可以将数组的.length属性用于乘以的值,因为数组中的项目数比最后一项的索引大一。这将生成一个随机数,它是数组的索引之一。

之后,使用 jQuery 的text()函数替换段落的文本和引用标签以显示您随机选择的引用。

这是一个例子:http: //jsfiddle.net/sWvGp/

HTML:

<blockquote id="randomquote">
    <p></p> <cite>&mdash; <a href="#" target="_blank"></a></cite>
</blockquote>

Javascript:

var myQuotes = [{
    quote: "To err is human; to forgive, divine.",
    cite: "Alexander Pope",
    url: "http://www.example.com"
}, {
    quote: "Reports of my death have been greatly exaggerated.",
    cite: "Mark Twain",
    url: "http://www.example.com"
}, {
    quote: "A line of oversize watches that can offer many of the attributes of premium luxury watches at an affordable price.",
    cite: "Horozima",
    url: "http://www.horozima.com/2012/07/terranaut-xl-50mm.html"
}];

var randomQuote = Math.floor(Math.random() * myQuotes.length)

$('p', '#randomquote').text(myQuotes[randomQuote].quote);
$('cite a', '#randomquote').attr('href', myQuotes[randomQuote].url).text(myQuotes[randomQuote].cite);
于 2013-05-20T19:51:28.317 回答