如何选择不属于某个类的属性?

时间:2017-04-20 04:58:09

标签: jquery

如何选择不属于特定类的img标签的图像属性(src)?

这是HTML代码

<div class="content">
    <h1>Welcome to My Homepage</h1>
    <img src="#first">
    <img src="#second">    

    <p class="footer">
        <img src="#1">
        <img src="#2">
        <img src="#3">
    </p>

    <p id='test'> </p>
</div>

我已经尝试了 .not():not()选择器,但我似乎无法让它们发挥作用。如何选择不属于&#34;页脚&#34;的img标签的图像源?类。

这就是我的尝试。

<script>
    var url = [];

    $(document).ready(function(){
        $('.content').filter(function() {
            var data = $(this);
            var image = data.find('img:not(".footer")');

            image.each(function(i,el) {
                url[i] = $(el).attr('src');
                $("#test").text(url);
            });
        })
    });
</script>

2 个答案:

答案 0 :(得分:5)

过滤掉页脚类的子图像:

$(document).ready(function() {
  $("img").not(".footer > img").each(function() {

    console.log($(this).attr("src"));

  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<div class="content">
  <h1>Welcome to My Homepage</h1>
  <img src="#first">
  <img src="#second">
  <p class="footer">
    <img src="#1">
    <img src="#2">
    <img src="#3">
  </p>

  <p id='test'> </p>

答案 1 :(得分:0)

@Developer有一个非常好的解决方案 - 我推荐这个。

此方法在图像列表上实现了一个过滤器 - 效果相同。虽然不太优化。

var url = [];
$(document).ready(function() {
  $('.content').filter(function() {
    var data = $(this);
    var image = data.find('img');
    image.filter( (i, el) => !$(el).parents().hasClass("footer") ).each(function(i, el) {
      console.log($(el).attr("src"));
    })
  })
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<div class="content">
  <h1>Welcome to My Homepage</h1>
  <img src="#first">
  <img src="#second">
  <p class="footer">
    <img src="#1">
    <img src="#2">
    <img src="#3">
  </p>

  <p id='test'> </p>