我有像
这样的Ul列表<ul>
<li>
<a>item first <a>
</li>
<li>
<a>item first <a>
</li>
<li>
<a>item first <a>
</li>
<li>
<a>item first <a>
</li>
</ul>
我想选择锚标记的文本,并在点击时使用jquery添加或删除。
var arr = [];
$(ul a).on('click',function(){
arr.push($(this).text());
})
如果再次单击,则检查值是否存在,然后从阵列中删除。如果没有,那么添加
由于
答案 0 :(得分:0)
首先,我想指出$(ul a)
中缺少的引号。它应该是$('ul a')
带引号。然后策略将是在数组中找到存在与否的文本,这可以像这样实现:
var arr = [];
$('ul a').on('click',function(){
// use trim so that the spaces before and after do not affect
var clickedText = $(this).text().trim();
// the clicked anchor text exist
if(arr.indexOf(clickedText) !== -1){
// remove that text from array
arr.splice(arr.indexOf(clickedText), 1);
} else {
arr.push(clickedText);
}
console.log(arr);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li>
<a>item first <a>
</li>
<li>
<a>item first <a>
</li>
<li>
<a>item first <a>
</li>
<li>
<a>item first <a>
</li>
答案 1 :(得分:0)
$(ul a).on('click',function(){
let currentElement=$(this).text().trim();
let foundElement = arr.some(function (element) {
return element==currentElement;
});
if(!foundElement)
{
arr.push(currentElement);
}
else
{
arr.pop(currentElement);
}
});