jquery简单的ajax加载而不加载它的包装器DIV

时间:2012-04-20 01:23:47

标签: jquery

我在外部文件(test.html)上有一个内容(#content),可以在index.html加载到另一个DIV(#result):

的test.html:

<div id="content">This text should not be loaded with its DIV. <strong> May contain other tags</strong></div>

jquery的:

$('#result').load('test.html #content');

index.html结果,意料之外:

<div id="result"><div id="content">This text should not be loaded with its DIV. <strong> May contain other tags</strong></div></div>

index.html结果,预期:

<div id="result">This text should not be loaded with its DIV. <strong> May contain other tags</strong></div>

如何仅加载#content的实际内容/ HTML,其中也可能包含其他标记,但只包含其包装DIV(#content)? 原因是简单地避免不必要的divities,这也可能会错误地与其他风格的DIV冲突。

非常感谢任何提示。感谢

3 个答案:

答案 0 :(得分:1)

如果能够将.load()的结果输入var。 你可以这样做。

var result = ... load line ...
var outResult = $(result);
// now strip the div out of outResult using jquery......
outResult = StripContentDiv(outResult);
$('#result').html(outResult);

抱歉,我不能更具体,因为我不是一个jquery专家。

答案 1 :(得分:1)

这是一个想法。如果您使用临时标签作为工作区怎么办?

这个jQuery javascript ...

$('#workarea').load('test.html #content');

...可能会产生这个结果。请注意,工作区是隐藏的:

<div id="result"></div>
<div id="workarea" style="display: none"><div id="content>This text should not be loaded with its DIV</div></div>

然后,您可以将其移动到结果...

$('#result').html($('#workarea').html());

它应该产生这个结果。

<div id="result">This text should not be loaded with its DIV</div>
<div id="workarea" style="display: none"><div id="content></div></div>

修改

以下是一个完整的脚本:

$('#workarea').load('test.html #content');
$('#result').html($('#workarea').html());

您可以使用这两行而不是一行。如果我理解正确,它应该在上面的查询中产生预期的结果。

答案 2 :(得分:1)

你看起来是

吗?
$(document).ready(function(){
  $('#result').load('test.html #content', function () {
    $('#content', this).text;
     });
   }); 

:P x由JNE