当我点击页面上的按钮时,我试图从一系列段落中随机显示一个段落。现在,如果我在一个数字中硬编码,它会显示一个段落,但是当我尝试随机选择一个段落时(使用$( "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>
答案 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 );