从其他页面抓取对象但不使用load方法

时间:2011-04-01 21:24:30

标签: javascript jquery

例如,如果用户在Default。点击导航转到Page2我想加载ID为<div>的{​​{1}},然后抓住第二个container,其ID为<div> ,但显然不加载它,只需捕获其中包含的文本。

默认示例:

includeScripts

第2页的例子:

<div id="mainContentContainer">
    <!-- Main content container -->
</div>

当前脚本如下所示:

<div id="container"> 
    Page 2

</div>

<div id="includeScripts">
    Some Text here...
</div>

我想可能使用jQuery提供的$navigation = $("#primaryNavigation").delegate('ul li a', 'click', function () { // Load the container information into the MainContainer div located on Default $('#mainContentContainer').load($(this).attr('href') + ' #container'); // Load the 'includeScripts' div and grab the text $.ajax({ url: $(this).attr('href'), context: document.body, success: function () { console.log('success'); } }); 方法可行,但显然不行。

如果我的问题不清楚,请告诉我。

3 个答案:

答案 0 :(得分:2)

为什么不在“默认”页面上创建第二个div,您将从“includeScripts”div加载文本,并将div的显示设置为none。

从那里你可以在默认页面中找到该脚本文本。

答案 1 :(得分:1)

如果我理解你的问题应该是这样的:

$.ajax({
    url: $(this).attr('href'),
    dataType: 'html',
    context: '#mainContentContainer',
    success: function (html) {
        var text = $(html)
            .find('#container')
            .appendTo(this).end()
            .find('#includeScripts')
            .text();

        console.log(text);
    }
});

答案 2 :(得分:0)

这就是我最终做的事情......非常类似于乔赛亚的答案,并进行了一次小调整

$.ajax({
        url: $(this).attr('href'),
        dataType: 'html',
        context: '#mainContentContainer',
        success: function (html) {
                console.log($(html).filter('#includeScripts').text());
                console.log($(html).filter('#includeStylesheets').text());
      }});