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