これが、あなたの例ではうまくいかない理由です。
load()
は非同期通話なので、通話が終了したときにのみ治療を続ける必要があります
$hold.find('#removediv').remove()
divを選択するだけで、実際には削除しません
あなたが必要とするあなたのコードoの仕事のために、このようにcallback
とを利用するためにend
:
<script>
$(function() {
$("#l").click(function() {
var url = 'b.htm';
$("#content").load(url + " #somediv", function(data) {
var allHtml = $(data),
newHtml = allHtml.find("#removediv").remove().end();
console.log(newHtml.html());
});
});
});
</script>
このhtmlのファイルがあると仮定します。
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<title>Stackoverflow example</title>
</head>
<body>
<h1>Hello</h1>
<a href="#" id="l">load content</a>
<div id="content">Empty</div>
</body>
</html>
とb.htm
持っています
<div>
<div id="somediv">
<div id="removediv" class="stuff">A</div>
<div id="okdiv" class="stuff">B</div>
<div id="okdiv" class="stuff">C</div>
<div id="okdiv" class="stuff">D</div>
</div>
</div>
出力は次のようになります(Firefoxでは、Chromeb.htm
はローカルファイルであるため、クロスドメイン呼び出しとしての呼び出しをブロックします)

出力ショー:
console.log('data');
console.log(data);
console.log('newHtml');
console.log(newHtml.html());
両方のファイルを表示する必要がある場合の例は、私のDropboxにあります。
独自のコードを使用する:
$(function() {
$('<div/>').load('page.php #somediv', function(data) {
// 'data' has the page.php #somediv part
var allHtml = $(data);
if ($.cookie('mycookie') !== null)
allHtml = allHtml.find("#removediv").remove().end();
else
document.cookie = "mycookie=1;expires=Thu, 31 Dec 2020 23:59:59 UTC; path=/"
$('#divtwo').html(allHtml);
});
});