从任何类似的ID中计算可见元素。

时间:2021-03-30 19:53:01

How can I append text to elements containing a certain word in the ID, as long as they contain a visible element? I can get this to work for one unique ID, but not for all IDs containing the match (the one visible element). I've a feeling my use of "this" is incorrect.

我如何将文本附加到ID中包含某个单词的元素,只要它们包含可见元素?我可以让它为一个惟一的ID工作,但不是为包含匹配的所有ID(一个可见元素)。我觉得我使用“this”是不正确的。

http://jsfiddle.net/Wukbj/1/ [EDIT now with jQuery enabled!!!]

http://jsfiddle.net/Wukbj/1/[编辑现在使用jQuery !

$(function() {
if ($("[id^=relatedelements] > li:visible").length == 1) {
    $(this).append("match found...")};
});

1 个解决方案

#1


2  

You should use id*=value which means id contains the string value

您应该使用id*=值,这意味着id包含字符串值。

$(function() {
    $("ul[id*=relatedelements] > li:visible").each(function(){
        $(this).append('match found...');
    })
});

for non visible element:

不可见的元素:

$(function() {
    $("ul[id*=relatedelements] > li:hidden").each(function(){
        $(this).append('match found...');
    })
});

You can also count the number of hidden element and append it to the ul

您还可以计算隐藏元素的数量并将其添加到ul。

$(function() {
    $("ul[id*=relatedelements]").each(function(){
        $(this).append($(this).find('li:hidden').length 
          + ' items are invisible...');
    })
});

#1


2  

You should use id*=value which means id contains the string value

您应该使用id*=值,这意味着id包含字符串值。

$(function() {
    $("ul[id*=relatedelements] > li:visible").each(function(){
        $(this).append('match found...');
    })
});

for non visible element:

不可见的元素:

$(function() {
    $("ul[id*=relatedelements] > li:hidden").each(function(){
        $(this).append('match found...');
    })
});

You can also count the number of hidden element and append it to the ul

您还可以计算隐藏元素的数量并将其添加到ul。

$(function() {
    $("ul[id*=relatedelements]").each(function(){
        $(this).append($(this).find('li:hidden').length 
          + ' items are invisible...');
    })
});