为 jquerys .load() 准备参数
Prepare parameter for jquerys .load()
我正在尝试将一个html文件加载到另一个html文件中。
例如:
$(function() {
$('#main li').on('click', function() {
var loadstring = $(this).data('url') + ' ' + $(this).data('target');
$('#container').load( loadstring );
});
});
<div id="main">
<ul>
<li data-url="home.html" data-target="#foo">Home</li>
<li data-url="some.html" data-target="#bar">Some</li>
</ul>
</div>
<div id="container"> </div>
在我的some.html
中是一个包含数据并具有 id bar
的 <p>
元素。在我的家中.html没有 id foo
的元素。
我想要实现的是:
我想要的是检查加载的文件是否具有具有特定 id 的元素。 或类,具体取决于传递的数据。如果是,加载应如下所示:
home.html #foo
如果没有,负载应如下所示
home.html
所以整个页面都被加载了。
有没有办法让我使用 load() 并检查现有元素?
我尝试了一些这样的
var loadstring = $(this).data('url') + ' ' + $(this).data('target');
var e = $('#container').load( loadstring );
alert(e.prop('childElementCount'));
但这导致了 0,并且在第二次尝试时它说它找到了一个元素,因为实际上它在我的容器中而不是在加载文件中查找:D
对于那些喜欢尝试运气的人,
我只是在这里建立一个小的"测试小提琴"^^最好的办法是使用异步调用来加载文件:
$(document).on('click', '#main li', function () {
var url = $(this).data('url');
var targetSelector = $(this).data('target');
var callback = function (data) {
$(targetSelector).html(data);
};
var dataType = 'text/html';
$.get(url, {}, callback);
});
你最好从jquery获取源代码,并使用ajax(基于 https://github.com/jquery/jquery/blob/master/src/ajax/load.js)制作你的自定义加载器,但你只想调整你的代码(未经测试):
$(function() {
$('#main li').on('click', function() {
var $this = $(this);
var url = $(this).data('url');
var selector = $(this).data('target');
$('#container').load(url, function(responseText){
var $content = $("<div>").append($.parseHTML(responseText)).find(selector);
if($content.length)
$this.html($content);
// Else: full content already inserted by jQuery.load
});
});
});
希望这有帮助。干杯!
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 使用Express捕获参数
- 参数变量出现ngTable指令问题
- AngularJS:我可以跳过函数参数回调吗
- 如何使用skip参数使用angular ui引导进行服务器端分页
- 要求未定义JS回调参数
- 我的jQuery插件参数没有正确启动,遇到了问题
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- jquery设置为使用参数运行
- Javascript”;类“;带有参数的扩展
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 函数未将值作为参数传递
- 如何将参数传递到angularJs中的工厂
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- MVC 3页面导航和使用javascript传递参数
- 从查询字符串参数推断出正确的数据类型
- 传递包含'%的参数'在URL中
- 为什么不'我们在javascript中使用函数参数的数据类型
- 为 jquerys .load() 准备参数