jAndy's approach應該工作,但它等待添加DIV直到GET
完成(這應該是罰款)。如果你把DIV到位做GET
之前,它是真正重要的,不過,你可以這樣做:
$(".item").each(function(){
var item_link = "http://...";
var item_div = $('<div class="src"></div>');
$(this).prepend(item_div);
$.get(item_link, function(data) {
var src = $('.message img', data).attr('src');
item_div.text(src);
});
});
使用item_div.text()
,這將顯示來自src
值。如果src
具有HTML標記,並且您想讓它們呈現,請改爲使用item_div.html()
。
編輯:你的「不工作」的評論後更新:
你問一下,設置div的文本部分,做工精細。我認爲問題在於你的代碼假設從ajax
調用回來的data
將是一個DOM元素。它不會,它會是一個字符串,直到你把它插入到DOM的某個地方(jQuery不會主動地將HTML變成DOM對象)。
這個版本處理該:
$(".item").each(function(){
var item_link = "http://...";
var item_div = $('<div class="src"></div>');
$(this).prepend(item_div);
$.get(item_link, function(data) {
var img = $(data).find('.message img'); // <== Make a DOM element,
// look for images in
// .message containers
var src = img.attr('src');
item_div.text(src);
});
});
工作例如:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
<title>Test Page</title>
<style type='text/css'>
body {
font-family: sans-serif;
}
</style>
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js'></script>
<script type='text/javascript'>
(function() {
$(document).ready(pageInit);
function pageInit() {
$('#btnGo').click(go);
}
function go() {
$(".item").each(function(index){
var item_link = "tempserver.jsp?index=" + index;
var item_div = $('<div class="src"></div>');
$(this).prepend(item_div);
$.get(item_link, function(data) {
var img = $(data).find('.message img');
var src = img.attr('src');
item_div.text(src);
});
});
}
})();
</script>
</head>
<body>
<input type='button' id='btnGo' value='Go'>
<div>
<div class='item'>Item 1</div>
<div class='item'>Item 2</div>
<div class='item'>Item 3</div>
<div class='item'>Item 4</div>
</div>
</body>
</html>
tempserver.jsp:
<div>
<div class='message'><img src='image<%=request.getParameter("index")%>.png'></div>
</div>
這並不工作太 – Happy 2010-06-16 13:04:39
@Happy:只是做編輯,這個問題是不是在我還以爲你問的是一部分,但我想我找到了。 – 2010-06-16 15:22:18