使用jquery从另一个页面加载随机元素

时间:2012-01-31 15:30:52

标签: jquery

我有一个包含许多div的页面(myPage.aspx)。 EG。

    <div class="quote">something 1</div>
    <div class="quote">something 2</div>
    <div class="quote">something 3</div>
    <div class="quote">something 4</div>
    <div class="quote">something 5</div>

使用jquery的ajax函数,从我想要的其他页面:

  

a)在页面myPage.aspx上测试多少.quote div。

     

b)将myPage.aspx中的随机.quote div加载到特定的id div中   (#myDiv),在我当前的页面上。

非常感谢任何帮助优惠。

3 个答案:

答案 0 :(得分:4)

您可以使用以下内容:

$.get('/path/to/myPage.aspx', function(data)
{
    var $quotes = $(data).find('div.quote'),
        count = $quotes.length,
        $random = $quotes.eq( Math.floor(Math.random() * count) );

    $('#myDiv').append( $random );
});

在此处查看:[{3}}

答案 1 :(得分:2)

您可以使用jQuery ajax()方法从myPage.aspx获取内容,并使用jQuery apis遍历其内容。试试这个。

$.ajax({
   url: "myPage.aspx",
   success: function(data){
       var $data = $(data);  
       var $quotes = $data.find('div.quote');

       //$quotes.length will give you the number of quote divs in myPage.aspx

       var randomQuote = Math.floor(Math.random() * $quotes.length));
       $('#myDiv').append($quotes.eq(randomQuote));
   }
});

答案 2 :(得分:1)

您可以使用回调函数来实现此目的。例如:

这应该出现在myPage.aspx上:

<div id="result">
    <div class="quote">something 1</div>
    <div class="quote">something 2</div>
    <div class="quote">something 3</div>
    <div class="quote">something 4</div>
    <div class="quote">something 5</div>
</div>

这将是你的ajax功能:

<script>
$.ajax({
url: '/myPage.aspx',
type: 'get',
success: function(data) {
    var myLen=$(data).children().size(); 
    var myNum=Math.floor(Math.random()*(myLen-1)); 
    var myData=$(data).children().eq(myNum).text(); 
    $("div#myDiv").text(myData);
    }
});
</script>

此功能基本上是: 1.检索第二页上的所有HTML 2.获取包含引号的数量 3.获取一个0到1之间的随机数,该数字小于引号数,因为数组在JavaScript中从0开始 4.从带有该随机数的引号中获取文本 5.将引号插入#myDiv元素。