2012-01-31 100 views
0

我有一个包含多个div的页面(myPage.aspx)。例如。使用jquery从另一个页面加载一个随机元素

<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)测试许多.quote怎样的div在页面上myPage.aspx

b)加载的随机.quote div from myPage.aspx into a div id div (#myDiv),on my current page。

真的很感激任何帮助提供。

回答

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); 
}); 

看到它在这里的行动:http://jsfiddle.net/j2AGL/

+0

谢谢你。 2个非常好的工作答案。 – 2012-01-31 15:48:43

2

您可以使用jQuery ajax()方法从myPage.aspx通过使用jQuery的API的内容和内容的遍历。尝试这个。

$.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)); 
    } 
}); 
+0

这正是我所追求的。谢谢。 – 2012-01-31 15:45:11

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开始的0到1之间的随机数,小于JavaScript中从0开始的引号数 4.从随机数中获取引号中的文本 5.将引号插入#myDiv元素。

相关问题