-6

我想在多个跨度中搜索一个字母,例如a,如果存在于跨度中,我想显示这个跨度并隐藏其他。

<span id="1">janatan</span>
<span id="2">john</span>
<span id="3">jarry</span>
<span id="4">marry</span>
<span id="5">dfdgdf</span>
<span id="6">ghjkgk</span>
4

5 回答 5

3
$('span').each(function(){
    if (this.innerHTML.indexOf('a') > -1)
    // or using  toLowerCase() if needed
    if (this.innerHTML.toLowerCase().indexOf('a') > -1)
        $(this).show();
    else
        $(this).hide();
});

或与:

$('span').hide().filter(':contains(a)').show();
于 2013-08-22T07:48:02.857 回答
1

我会给你砖块:

  • $('span')将检索每一个span(如 CSS 选择器)
  • .each(function(){ ... $(this).text() ... })将迭代每个元素并将函数应用于this.
  • 上面,.text()将为您提供元素内的文本
  • .show().hide()显示或隐藏元素
  • .siblings('span')选择同一父母的每个孩子,但这个孩子。

玩得开心 :)

于 2013-08-22T07:50:28.357 回答
0

您可以使用 :contains 根据其内容获取元素。

<div>This is a test</div>

<div>Div</div>
<div>a</div>

$('div:contains("a")').css('display', 'block');

http://jsfiddle.net/9z5du/

于 2013-08-22T07:51:55.287 回答
0

尝试这个:

$('span').each(function(){
    if(/a/ig.test($(this).text())){
        $(this).show();
    }else{
        $(this).hide();
    }
});

或者

$('span').hide().filter(function(){
    return /a/ig.test($(this).text());     
}).show();
于 2013-08-22T07:52:22.507 回答
-1
if (this.innerHTML.indexOf('A') > -1)

演示 JSFIDDLE

于 2013-08-22T07:50:31.020 回答