2013-03-14 202 views
-1
<div class="s4-titlelogo"> 
<a href="/sites/mysite"> 
<img name="onetidHeadbnnr0" id="ctl00_onetidHeadbnnr2" style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px;" alt="bobpub" src="/_layouts/images/blank.gif" complete="complete"/> 
</a> 
</div> 

如果img的src属性为blank.gif,那么我想将src属性设置为我的图标url“/_layouts/images/myicon.gif”。我需要引用img作为$('.s4-titlelogo img')。使用jquery更改img src

至今:

iconurl = $('.s4-titlelogo a>img').attr("src"); 
      if (iconurl == ""/_layouts/images/blank.gif") 
      { 

      } 
+3

你想改变在特定情况下的SRC? – 2013-03-14 16:13:12

+0

我认为你应该添加几个img标签(每个图像一个你需要的),然后交换它们(使一个不可见和正确的可见)。 – BigMike 2013-03-14 16:13:38

+0

您是否拥有多个“s4-titlelogo”类元素? – Ian 2013-03-14 16:19:27

回答

15

如果IMG src属性是blank.gif ...

if($('.s4-titlelogo img').attr('src') === '/_layouts/images/blank.gif') 

...然后我想设置的src属性为我的图标网址。

$('.s4-titlelogo img').attr('src', '/_layouts/images/myicon.gif'); 

编辑:三个downvotes瞬间?呃...为什么?

这里有一个例子JSFiddle证明这个作品。

+0

想知道为什么这么多downvotes以及。答案似乎对我来说合法。 – isotrope 2013-03-14 16:18:15

+1

这只有当有一个**元素与类“s4-titlelogo”(OP刚才指出的是真的)以及只有一个''后代时才起作用。否则,'if'语句检查发现的第一个'.s4-titlelogo',但'attr'设置程序设置所有的事件。 – Ian 2013-03-14 16:25:19

+1

@Ian:这个答案是基于原始问题给出的,仅此而已。它没有提到有多个图像或多个'.s4-titlelogo'分隔符。 – 2013-03-14 16:27:07

2

只是这样做......

现场演示:http://jsfiddle.net/oscarj24/FW4kj/

$(function(){ 

    //Get the element 
    elem = $('.s4-titlelogo img'); 

    //If 'src' attribute contains 'blank.gif' 
    if (elem.prop('src').indexOf('blank.gif') > 0) 
     //Replace 'src' attribute with 'myicon.gif' 
     elem.prop('src', '/_layouts/images/myicon.gif'); 

    //Alert new 'src' attribute just to verify 
    alert('New image url is: ' + elem.prop('src')); 

});