2009-11-30 32 views
1

我有以下输入隐藏值=“/ fr/images/findacourse_logo_tcm10-268.gif”。使用jquery替换图像src与输入隐藏值

<input type="hidden" id="Qt_Email_Image" value="/fr/images/findacourse_logo_tcm10-268.gif"/> 

我有下面SRC =“/images/quote/Quote_Email_Button.JPG”

<tr> 
    <td> 
     </td> 
    <td colspan="2" class=""> 
     <input type="image" border="0" alt="Email me this quote " src="/images/quote/Quote_Email_Button.JPG" id="Quote_btnEmail" name="Quote:btnEmail"/> 
    </td> 
</tr> 

现在我想在运行时将输入图像的src获取与上述输入隐藏值和替换另一个输入图像将在src中显示上方的图片而不是图片链接。这样我的上面的html变成

<tr> 
    <td> 
     </td> 
    <td colspan="2" class=""> 
     <input type="image" border="0" alt="Email me this quote " src="/fr/images/findacourse_logo_tcm10-268.gif" id="Quote_btnEmail" name="Quote:btnEmail"/> 
    </td> 
</tr> 

我想用Jquery的上面的解决方案,请建议!

谢谢。

回答

3

注意,当您更换形象是这样的:

$('#Quote_btnEmail').attr('src', $('#Qt_Email_Image').attr('value')) 

然后你目前的形象“报价电子邮件Button.JPG”已经被删除,那么新形象“findacourse标志tcm10-268.gif”被加载并然后显示。所以如果加载部分需要一段时间,那么用户将看到闪烁。

为了避免这种情况,您可以加载你的“findacourse标志tcm10-268.gif”第一,然后立即展示给用户:

var img = new Image(); 
$(img).load(function() { 
    $('#Quote_btnEmail').attr('src', img.src); 
}); 
img.src = $('#Qt_Email_Image').val(); 
0

这应该为你工作:

$('#Quote_btnEmail').attr('src', $('#Qt_Email_Image').attr('value')) 
+0

我认为'$ .attr(“值”)'没有跨浏览器。 – 2009-11-30 09:52:28

+2

attr('value')是完全跨浏览器支持的,事实上,如果主题不是选项/选择元素,jQuery只是返回attr值而没有额外的处理或逻辑。波兹拉维维 – duckyflip 2009-11-30 10:06:11

1
$('#Quote_btnEmail').attr('src', $('#Qt_Email_Image').val()); 

是你需要什么?