如何查找特定的数据属性?

时间:2017-10-08 06:31:03

标签: javascript jquery

我想在javascript中将li添加或删除到列表中。为此,我发现我需要添加数据属性并找到具有该值的项目。

if ($('li[data-requestId=' + requestId + ']').length == 0)
{
    var element = getRequestElement();
    var li = document.createElement("li");
    li.setAttribute("data-requestId",requestId);
    li.appendChild(element);
    $('#requestsUL').append(li);
}

但是第一行给出了这个错误:

  

语法错误,无法识别的表达式:   的Li [数据的requestId = 6.22.20]

2 个答案:

答案 0 :(得分:1)

在选择器周围添加额外的引号,例如

$('li[data-requestId=a.b.c.d.e fga]');

无效,但

$('li[data-requestId="a.b.c.d.e fga]"');

将起作用

...

更改代码行

if ($('li[data-requestId=' + requestId + ']').length == 0)

为:

if ($('li[data-requestId="' + requestId + '"]').length == 0)

答案 1 :(得分:1)

您好以下方法可让您根据ul阅读data-requestId标记内的所有元素。

我使用变量将li[data-requestId=""]requestId

连接起来
var dataSelector='li[data-requestId="' + requestId + '"]';

通过这种方式upi确保选择器完全是string,因此它在逻辑上可行。最后,这是一个代码片段,演示了我所说的所有内容:



$(function(){

var liSize=$("ul").children().length;

for(var requestId=1;requestId<=liSize;requestId++)
{
var dataSelector='li[data-requestId="' + requestId + '"]';
console.log($(dataSelector).text());
}
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li data-requestId=1>Item 1 </li>
  <li data-requestId=2>Item 2 </li>
  <li data-requestId=3>Item 3 </li>
  <li data-requestId=4></li>
</ul>
&#13;
&#13;
&#13;