使用jquery,我怎样才能找到一个图像是不是存在一个div中的某个属性?

Posted

技术标签:

【中文标题】使用jquery,我怎样才能找到一个图像是不是存在一个div中的某个属性?【英文标题】:Using jquery, how can i find if an image exists with a certain attribute that is within a div?使用jquery,我怎样才能找到一个图像是否存在一个div中的某个属性? 【发布时间】:2013-11-30 05:17:14 【问题描述】:

如果我有以下 html

<div id="container">
           <img personId="12" src"Joe.png" />
           <img personId="16" src"Scott.png" />
           <img personId="17" src"Bill.png" />
</div>

是否可以:

    返回该容器 div 内的图像中存在的 personId 列表

    有一个功能可以搜索图片列表中是否存在某个数字(看同一个属性)

我尝试使用 find() 但这似乎不起作用

【问题讨论】:

只是一个流氓评论;尽量不要使用非标准的属性,你可以将“personId”改为“data-personid”并兼容html。 【参考方案1】:

要获取所有值,您可以使用.map() 方法:

var ids = $('#container img[personId]').map(function()
   return this.getAttribute('personId');
).get();

为了检查值的存在,您可以使用$.inArray() 实用函数。

if ( $.inArray(id, ids) > -1 )

【讨论】:

【参考方案2】:

在 jQuery 中使用 attr 函数:

arr = [];
$('#container')
  .children()
  .each(function () 
    arr.push($(this).attr('personId'));
  );

【讨论】:

【参考方案3】:

使用 jquery attr() 方法..

jQuery('img').each(function()
    _IMG = jQuery(this);
    var pid = _IMG.attr('personId');
    console.log(pid);
);

对于搜索功能,我猜是这样的:

jQuery(function($)
    var pidToSearchFor = 17;
    jQuery('img').each(function(index)
        _IMG = jQuery(this);
        var pid = _IMG.attr('personId');

        if(PERSONS.isSame(pid)) 
            console.log("FOUND! IN IMAGE NO."+index)

    );


);

var PERSONS = 
toSearchFor = 17,
isSame: function(pidIn) 
        _IMG = jQuery(this);
        if (toSearchFor == pidIn) return true
        else return false



【讨论】:

【参考方案4】:

采用未定义的选择器

function getPersonIdList()

    var personIdList = new Array();
    var personIds = $("#container img[personId]").each(
            function()
            
                personIdList[personIdList.length] = $(this).attr("personId");
            );

    return personIdList;


function isPersonIdExists(personId)

    var personIds = $("#container img[personId='" + personId + "']");
    if (personIds.length > 0)
        return true;

    return false;

【讨论】:

以上是关于使用jquery,我怎样才能找到一个图像是不是存在一个div中的某个属性?的主要内容,如果未能解决你的问题,请参考以下文章

我怎样才能实现像jQuery的slideDown一样的向下滑动效果,但只使用CSS?

jQuery:检查图像是不是存在

我怎样才能改变传说jquery flot的形状

我们怎样才能提到一个提交的孩子?

UIBarButtonItem:我怎样才能找到它的框架?

我怎样才能拥有一个同时包含图像和文本的 UIBarButtonItem?