我想在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]
答案 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;