所以我正在使用Jquery的加载函数,
$('#id').load("http://www.thisiswhyimbroke.com");
Run Code Online (Sandbox Code Playgroud)
我知道你可以在url之后添加id选择器,但是我要查找的内容不包含在id中,有没有办法可以选择特定的类名?
更进一步,如果我可以选择第一个li项目,然后选择其中包含名称项目的类,这可能吗?
基本上我有一个index.html如下所示..
<html>
<head>
<title>UI Test: Main Menu</title>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="general.js"></script>
</head>
<body>
<input type="button" value="Details" onclick="javascript:$('#mainContainer').load('loadpage.html #name1div *');"/><br>
<div id="mainContainer">
</div>
Run Code Online (Sandbox Code Playgroud)
loadpage.html cotaints
<div id="nav1div><h3>1 DIV </h3> </div>
<div id="nav2div><h3>2 DIV </h3> </div>
<div id="nav3div><h3>3 DIV </h3> </div>
<div id="nav4div><h3>4 DIV </h3> </div>
Run Code Online (Sandbox Code Playgroud)
我的目标是基本上将一个div一次加载到主容器中,我知道加载函数可以立即加载整页但这不是我需要做的.
有几个看看类似的问题,但似乎无法解决这个问题..
感谢所有人的帮助!
我的网站jquery.load()用于在页面的大块上进行导航.我真的很感激能够只包含加载内容的特定部分,这里是id ="content"的div:
$(frame_selector).load(url +" #content", function(response, status, xhr) {...});
Run Code Online (Sandbox Code Playgroud)
但是现在我需要能够运行作为动态加载页面一部分的脚本. Jquery.load()剥离这些脚本,但jquery.ajax()没有.所以我复制了jquery.loadajax调用中的部分内容功能:
$.ajax({
url: url,
dataType: 'html',
success: function(data, textStatus, XMLHttpRequest) {
// Only include the response within the #content id element.
$(frame_selector).html( jQuery("<div>")
.append(data)
.find("#content")
);
}
});
Run Code Online (Sandbox Code Playgroud)
问题是从ajax调用动态加载的脚本无法可靠地运行.有时它们似乎没有任何影响,可能是因为它们运行得太早.脚本只是在jquery中进行DOM操作 - 不依赖于图像或flash或任何不应该加载的东西.为了避免陷入困境,我有这个可怕的黑客来让事情发挥作用.而不是仅使用AJAX加载的脚本:
$(document).ready( function() {...} ); // unreliable
Run Code Online (Sandbox Code Playgroud)
我在运行之前将脚本延迟200ms:
$(document).ready( window.setTimeout( function() {...}, 200 )); // HATE THIS
Run Code Online (Sandbox Code Playgroud)
有人知道如何在没有硬编码延迟的情况下可靠地完成这项工作吗?我猜这是加入新div的<script>逻辑和我的逻辑之间的竞争条件#content,但我不知道该怎么做.
我正在使用一个简单的ajax加载器来获取wordpress上的内容.
$("#page_preview").load("ajaxloader/", function(response, status, xhr) {
if (status == "error") {
alert("Sorry but there was an error");
}
else
{
$('#page_preview').fadeIn(300);
}
});
return;
Run Code Online (Sandbox Code Playgroud)
当我加载一个嵌入了谷歌地图的特定帖子时,显然出现了问题,但不是进入if语句,萤火虫表明它超出了这段代码.无论是if或else打击.
使用eclipse调试器我发现页面加载成功,但是当它将数据返回给.load()方法时,最后一次中断.
关于可能发生的事情的任何想法?
在我的a.html我写这个:
<script>
function Flike()
{ jQuery('#ft').load('like.php'); }
</script>
Run Code Online (Sandbox Code Playgroud)
在a.html的身体我写
window.onload = Flike()
like.php是:
echo " <script> var e = document.createElement('script');
e.async = true;
e.src = '/facebook/like.js';
document.getElementById('ft').appendChild(e);
</script>
";}
Run Code Online (Sandbox Code Playgroud)
现在,一切都很好并且有效.
问题出在like.js上,脚本不起作用.这就像.js
我也试过没有文件准备功能......没有用.
我想知道API结果如何在响应到来时加载.
我认为使用数据库中的ajax我们可以得到.但这里来自API(实时结果)SOAP API.
有什么建议?
编辑
我目前的ajax功能是
$.ajax({
type: "get",
url: "<?=base_url()?>search/showresults",
cache: false,
data:datastring,
beforeSend:function(){
$('#resultloader').show();
},
success: function(response){
$('#resultloader').hide(500);
$('#showflightresults').html(response);
},
error: function(){
//alert('Error while Sending request..');
}
});
Run Code Online (Sandbox Code Playgroud)
谢谢
这里很沮丧.不能让这个工作,不知道为什么.我试图用另一个html文件中的div填充我的div.这是我的代码:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<div id="text">
content goes here
</div>
<script type="text/javascript">
function whenButtonClicked() {
var book = document.getElementById("book").value; //this is working
var chapter = document.getElementById("chapter").value; //this is working
var filename = 'files/' + book + chapter + '.html'; //this is working
$('#text').load(filename #source); //this is NOT
}
</script>
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
亚当
编辑:这是我正在处理的实际文件的链接.它也可能有问题.
我一直在尝试寻找一种方法来做到这一点,因为我确信有数百个网站对此进行了解释,但我只是无法正确表达,所以我所有的搜索都得出了其他内容。
如果这个问题之前已经被问过很多次了,我很抱歉。
无论如何,我想做的是在 div 内加载页面“page.html”。该页面只有文字,没有其他内容。因此,我不想使用 iframe,而是想将此页面加载到 div 内,这样它就只显示该页面上的文本。
我尝试了在搜索过程中发现的一些不同的东西,例如;
$(document).ready(function() {
$("div").load("page.html")
});
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,该方法更改了页面上的所有文本,而不是位于该 div 内。(我在编码方面非常糟糕,所以我可能在该方法的某个地方出错了)
那么任何人都可以建议一种不使用 iframe 来加载 div 内页面内容的方法吗?
我正在使用 jQuery 的.load()页面片段方法来重新加载我的页面的一部分:
$("#submit").click(function() {
$("#box").load('/ajax/box/ #box');
});
Run Code Online (Sandbox Code Playgroud)
它可以工作,但是这会导致错误,因为在加载内容之后。由于该函数本质上使用.innerHTML它来替换我的div. HTML 结果如下所示:
<div id="box">
<div id="box">
<!-- this is my page -->
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我尝试过使用但删除了父级中的.parent()所有其他s 。div
$("#submit").click(function() {
$("#box").parent().load('/ajax/box/ #box');
});
Run Code Online (Sandbox Code Playgroud)
本质上,这就是我想要做的(我知道下面的代码是无效的,但这代表了我想要完成的事情):
$("#submit").click(function() {
$("#box").load('/ajax/box/ $('#box').html()');
});
Run Code Online (Sandbox Code Playgroud)
有什么方法可以让我#box替换为吗#box?
需要记住的一件事是我无法编辑 HTML,因此这只需要使用 jQuery 来实现。