【发布时间】:2012-03-05 10:52:56
【问题描述】:
这个问题看起来很简单,所以如果不礼貌请提前认错。
我在设置为显示的选项卡面板 div 中有一些 div。
<div id="fragment-5a" class="ui-tabs-panel" style="display: block;">
<div id="mainpic">
<img align="middle" alt="somewhere"
src="http://localhost/gopag3/projects/somest.jpg"></div>
<div id="altpic"><img src="#"></div>
<div id="mainpicblurb">texttexttext</div></div>
一个 div 'mainpic' 包含一个 img。第二个 'mainpicblurb' 包含子 div 'piclinks' 内的文本和链接。 Div 'altpic' 为空且隐藏(显示:无),但除此之外是 'mainpic' 的精确副本。
我正在尝试编写一个执行以下操作的脚本:
- 隐藏“主图”
- 抓取 href (img src) 并将其作为 img src 添加到 'altpic'
- 显示“altpic”
这就是我所做的。
$(document).ready(function() {
$('#piclinks div a').click(function() {
var link = $(this).attr('href');
$('#mainpic').hide();
$('#altpic img').replaceWith('<img align="middle" src="' + link + '">');
$('#altpic').show();
return false;
});
});
这在整体上不起作用。成功抓取href。 img src 成功转储到 'altpic' 和 'return false' 工作正常,但 'mainpic' 或 'altpic' 都没有正确的显示属性。
这可能是标签 CSS 覆盖了我所做的任何事情,尽管在 Firebug 中查看它我看不出如何。
很可能上面是一长串的嚎叫。我的直觉是选择过程是错误的。我需要从#piclinks div 遍历DOM,然后备份树以收集#mainpic 和#altpic,可能使用parent() 和siblings()。
无论如何,欢迎提出建议/理解批评。
汤姆
【问题讨论】:
-
链接指向
img?路径是什么?为什么不尝试只更改img的attr而不是创建一个新的? jQuery 创建内联 CSS,因此据我所知,它不能被 CSS 规则覆盖... -
您发布的代码非常好。见this fiddle。你想做什么?
-
Thx S0pra - 小提琴很有帮助。
标签: jquery