【问题标题】:multiple :contains(), only a single append()多个:contains(),只有一个append()
【发布时间】:2013-08-26 19:55:48
【问题描述】:

我有一种情况,我需要在多个“li”中分别搜索某个不同的字符串,如果满足所有条件,则仅将链接附加到最后一个。

我正在使用 jQuery :contains() 来确定每个 li 中是否有某个单词,我可以根据多个条件将 .append() 设置为所有 li,但我只需要将它附加到最后一口。

如何让它发挥作用?我可以让它附加到所有使用:

$('li#1:contains("x"),li#2:contains("y")').append('z');

这给了我:

xz
yz

我只需要它给我:

x
yz

【问题讨论】:

  • 所以...使用.last() 方法?甚至.eq(-1)?
  • 您是否有多个lis,ID 为1
  • +1 @KevinB,但也要在你的 id 选择器前面去掉 li 限定符。
  • $('#1:contains("x"),#2:contains("y")').last().append('z');

标签: jquery append contains multiple-instances


【解决方案1】:

你可以使用“下一个”:

$(document).ready(function(){
    var target = $('li#1:contains("x")').next('li#2:contains("y")');
    if (target){
        target.append('z');
    }
    //$('li#1:contains("x")').next('li#2:contains("y")').last().append('z');
});

小提琴:http://jsfiddle.net/vuWuD/3/

编辑:更新地址评论。

【讨论】:

  • 我喜欢这个,但它不是基于“和”限定的。如果我拿你的 jsfiddle 并将 li#1 设为“z”,它仍然会附加到第二个,即使它不应该。只有同时满足这两个条件,我才能使其工作。
猜你喜欢
  • 2016-06-12
  • 1970-01-01
  • 2021-09-30
  • 2014-09-03
  • 1970-01-01
  • 2022-01-24
  • 1970-01-01
  • 1970-01-01
  • 2020-09-28
相关资源
最近更新 更多