挑选随机段落jQuery AJAX

时间:2014-05-20 16:17:52

标签: javascript jquery html ajax

当我点击页面上的按钮时,我试图从一系列段落中随机显示一个段落。现在,如果我在一个数字中硬编码,它会显示一个段落,但是当我尝试随机选择一个段落时(使用$( "p:nth-child(set)" )它会破坏。

我的Javascript如下:

$( "#toggleweight" ).click(function() {
  var set =Math.floor((Math.random()* $('p').length )+1);
  $.ajax({success:function(result){
       $( "p:nth-child(set)" ).fadeIn( 3200 );
    }});
});

我的HTML:

        <div id="button">
          <a class="btn" href="#" id="toggleweight">Cool button. </a>
        </div>
        <div id = "button2">
          <% array = ["ASDF", "FDSA"] %>
          <% array.each do |display| %>
          <p class="btn" style="display: none"><%= display %></p>
         <% end %>
        </div>

3 个答案:

答案 0 :(得分:2)

你的问题是set是一个字符串。你需要"p:nth-child(" + set+ ")"

编辑:为了摆脱当前段落并显示一个新段落,你需要在选择它时添加一个类,然后淡出该类...

$.ajax({
   success:function(result) {
      $(".shown").removeClass("shown").fadeOut(3200);
      $( "p:nth-child("+set+")" ).fadeIn( 3200 ).addClass("shown");
   }
});

答案 1 :(得分:0)

set是一个变量,所以试试这个

$( "p:nth-child("+set+")" ).fadeIn( 3200 );

答案 2 :(得分:0)

此:

$( "p:nth-child(set)" ).fadeIn( 3200 );

应该是:

$( "p:nth-child("+set+")" ).fadeIn( 3200 );