使用部分名称jquery查找图像

时间:2017-01-12 07:00:27

标签: javascript jquery html html5

我在div中有一个图像如下:

<div id="testdiv">
   <div class=".kl"> </div>
   <img src="../../testimage.png"/>
</div>

我想测试div中是否存在图像。 我已经知道了一个jquery条件,它适用于所有条件:

if ($("#testdiv").children('img').attr('src','testimage.png')) {
alert('image found');
}

if ($("#testdiv").children('img').attr('src','dummyimage.png')) {
alert('image found');
}

控件进入第二个&#39; if&#39; 条件不正确,因为&#中没有 dummyimage.png 34; testdiv&#34; 即可。 如何通过图像名称找出它是否存在于div中?

6 个答案:

答案 0 :(得分:4)

您的代码不是按属性搜索,而是设置属性。

如果您想按照给定值结尾的属性进行搜索,可以使用attribute-ends-with selector[name$=value-it-ends-with]):

if ($("#testdiv img[src$='testimage.png']").length) {
    // yes, it's there
} else {
    // no, it isn't
}

还有attribute-contains selector*=而不是$=),它可以匹配任何地方的sbustring,而不仅仅是最后。并且^=仅在开头时匹配。更多信息the documentation

答案 1 :(得分:2)

您可以使用filter()过滤掉指定字符串文字的所有图像src endsWith()。然后检查其length属性

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.10/angular.min.js"></script>

<div ng-app="app" ng-controller="ctrl">

  <!--//************ EXAMPLE 1 *******************-->
  <fieldset>
    <legend>Example 1 (Set selection as <strong>object</strong>)</legend>
    
    <select ng-model="my_os" ng-options="os.name for os in osList track by os.id">
        <option value="">--Select--</option>
      </select>
    {{my_os}}
    
  </fieldset>
  
  
  <!--//************ EXAMPLE 2 *******************-->
  <fieldset>
    <legend>Example 2 (Set selection as <strong>value</strong>. Simulate ajax)</legend>
      <select ng-model="my_site" ng-options="site.id as site.name for site in siteList">
        <option value="">--Select--</option>
      </select>
      {{my_site}}
  </fieldset>
  
</div>

答案 2 :(得分:1)

您应该以这种方式检查:

 if ($("#testdiv").children('img').attr('src').endsWith('testimage.png')) {
    alert('image found');
 }

if ($("#testdiv").children('img').attr('src').endsWith('dummyimage.png')) {
    alert('image found');
}

答案 3 :(得分:0)

我认为.attr(key, value)尝试将值设置为元素,而不是检查属性值是否为提供的值。因此if()得到一个真正的,只要它可以设置&#34; dummyimage.png&#34;到图像src。这可能不是你想要的。

相反,您应该在if中使用.attr('src') == 'dummyimage.png'(或更好,使用.indexOf()或正则表达式而不是==)。这应该会有所帮助。

答案 4 :(得分:0)

检查图像是否存在

if($("#div").find('[name="ElementNameHere"]').length>0)
{
    // image exists 
}
else
{
   // image does not  exists 
}

答案 5 :(得分:-3)

您只需为img设置ID即可。并使用此jquery。

if ( $('#myElement').length ) {
// it exists 
}