首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery .closest span

jquery .closest span
EN

Stack Overflow用户
提问于 2016-08-19 23:41:14
回答 1查看 75关注 0票数 0

我有一个jquery移动列表视图,用户将单击其中一个li,这将激活我的删除代码。所有这些都起作用了。问题是,我需要将每删除的李数减少一个。

listview看起来如下(页面上有九个列表视图):

代码语言:javascript
复制
<div data-role="collapsible" data-collapsed="true" data-inset="true">
  <h3>Robbery
  <span id="rob_count" class="ui-li-count" style="float:right;">3</span></h3>
  <ul id="robberyAlertList" data-role="listview">
  <li id="1" class="robbery">Some text</li>
  <li id="2" class="robbery">Some more text</li>
  <li id="3" class="robbery">Still more text</li>
  </ul>
</div>          

单击li后,将调用我的delete函数,并在其内部(在删除提示符之后)执行以下操作:

代码语言:javascript
复制
var nCnt = $("#" +msg_id).closest( "span" ).text();
           $("#" +msg_id).closest( "span" ).text(--nCnt);
           $('#' +msg_id).remove();
           $('#fetch-result').html("Alert was deleted!");        

我想要做的是在span (3)中获取文本,并将其缩小1。正在发生的是,li被删除,#fetch-结果被设置,但没有其他内容。我不认为我得到的跨度超过了李,我肯定没有得到3。

我的猜测是,我对.closest做得不对。

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-19 23:49:14

从元素本身开始,closest()逐父查找DOM树,因此它将找不到您要查找的span,因为它是父级兄弟(想想表亲)的子级。此外,与其尝试获取当前计数并减少其数量,我只需对其余的列表项进行计数,并将新的计数放在它的位置:

代码语言:javascript
复制
function removeMessage(msg_id) {
    var $toRemove = $('#' + msg_id); // element to remove
    var $list = $toRemove.parent('ul'); // element's parent
    $toRemove.remove(); // remove it
    var newCount = $list.find('li').length;
    $list.closest('div').find('.ui-li-count').text(newCount); // get and show new count
}

removeMessage('1');
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div data-role="collapsible" data-collapsed="true" data-inset="true">
  <h3>Robbery
  <span id="rob_count" class="ui-li-count" style="float:right;">3</span></h3>
  <ul id="robberyAlertList" data-role="listview">
  <li id="1" class="robbery">Some text</li>
  <li id="2" class="robbery">Some more text</li>
  <li id="3" class="robbery">Still more text</li>
  </ul>
</div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39049049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档