如何查找包含特定值的数据属性的HTML元素?

时间:2016-03-07 12:26:54

标签: jquery html

我在HTML中使用数据属性,现在我想得到它。

我有这样的属性:

<div class="row hidden" data-party-registration-source-type-id="3,4">

假设我有一个值&#34; 3&#34;。我想搜索包含&#34; 3&#34;;

的数据属性

我该怎么做?

6 个答案:

答案 0 :(得分:2)

尝试在javascript中使用import matplotlib.pyplot as plt plt.hist(sub_dict['b'], bins=30, color='r', alpha=0.3) plt.ylim(0,200) plt.xlim(0,100) plt.xlabel('x') plt.ylabel('y') plt.title('title') plt.show() 来获取与您的dataset相关的数据,将其拆分并进行检查,

data-attribute

答案 1 :(得分:2)

您可以使用jQuery属性包含选择器轻松实现此目的:

  

选择具有指定属性的元素   包含给定的子字符串。

https://api.jquery.com/attribute-contains-selector/

  

这是匹配的最慷慨的jQuery属性选择器   反对价值。如果选择器的字符串,它将选择一个元素   出现在元素的属性值中的任何位置。

示例:

  $( "div.row[data-party-registration-source-type-id*='3']" )

答案 2 :(得分:1)

尝试使用包含选择器:

$('[data-party-registration-source-type-id~="3"]')

答案 3 :(得分:0)

编辑: 这不适用于OP的数据数据集。如果搜索33,它将返回包含3的元素。

您可以使用CSS Selector通配符。

https://developer.mozilla.org/en/docs/Web/CSS/Attribute_selectors

它是原生的,所以你可以使用或不使用jquery。

$('[data-party-registration-source-type-id*="3"]');

document.querySelectorAll('[data-party-registration-source-type-id*="3"]');

请参阅小提琴:https://jsfiddle.net/qw1x0eo7/

答案 4 :(得分:0)

对于Single Test Input Div页面, 首先,在split函数的帮助下获取数据属性字符串并打破数组。

attrName = 'data-party-registration-source-type-id';

dataArray = $('['+attrName+']').attr(attrName).split(",");

然后,修剪数组值以删除任何空格,使用praseInt将字符转换为int。

 trimmedDataArray = $.map(dataArray, function(value) {
  return parseInt(value.trim());
 });

testVal = 3;
isExist = $.inArray( testVal, trimmedDataArray );

如果,&#34; isExist&#34; = -1(未找到) 否则,(找到)

对于页面上的多个测试输入Div,

在每个函数中使用上面的代码

attrName = 'data-party-registration-source-type-id';
testValArray = [3,4,5,6];
$('['+attrName+']').each(function(index){
     dataArray = '';
     dataArray = $(this).attr(attrName).split(",");
      trimmedDataArray = $.map(dataArray, function(value) {
         return parseInt(value.trim()); // for words use, return value.trim();
      });

     testVal = testValArray[index];
     isExist = $.inArray( testVal, trimmedDataArray );
     //your code

});

答案 5 :(得分:0)

由于遇到相同的问题,我最终陷入了这个话题,但是大多数答案都建议这样做:

<div class="row" data-party-registration-source-type-id="03">

这的主要问题是,例如,如果您有一个像<div class="row" data-party-registration-source-type-id="|3|"> 这样的元素,其数据属性为“ 03”或“ 333”或“ 13”,等等……所有这些都将匹配

我能找到完全匹配的唯一方法是在数据属性值中添加定界符:

$( "div.row[data-party-registration-source-type-id*='|3|']" )

然后使用以下命令对其进行测试:

<div class="row" data-party-registration-source-type-id="|3|, |7|, |11|, |..|">

当然,它还可以处理多个逗号分隔的数据属性,即:

||

注意:定界符featuredProj可以是您选择的任何其他内容。