2017-04-05 112 views
0

这是我的HTML的一部分:显示元素的HTML,如果这个孩子包含文本

<div class="rigaEven"> 
       <div class="col1"> 
        <p class="stage">ROOM B</p> 
        <p class="where">Street</p> 
       </div> 
       <div class="col2 half"> 
        <p class="when">09:00 - 11:00</p> 
       </div> 
       <div class="col3"> 
        <p class="what">EVENT</p> 
        <p class="type">event</p> 
        <p class="who">PIER LUIGI GAROTTI</p> 
       </div> 
      </div> 
<div class="rigaOdd"> 
       <div class="col1"> 
        <p class="stage">ROOM C</p> 
        <p class="where">Street</p> 
       </div> 
       <div class="col2 half"> 
        <p class="when">09:00 - 11:00</p> 
       </div> 
       <div class="col3"> 
        <p class="what">MEETING</p> 
        <p class="type">event</p> 
        <p class="who">FRANCESCA GUARINO</p> 
       </div> 
      </div> 

我想隐藏带班rigaEven或rigaOdd格,如果这个孩子COL3包含特定的文本。 我会实现这个方法却行不通:

function(filter){ 
    if($(\".col3:contains("+filter+")\")){ 
     $(\".rigaEven\").show(); 
    } 
    if($(\".col3:contains("+filter+")\")){ 
     $(\".rigaOdd\").show(); 
    } 
} 
+0

你逃过了错误的引号'如果($(“COL3:包含(\‘+过滤+ \’)”)' – sTx

+0

我试试这个与Android的WebView,但没有工作:https://pastebin.com/VpfcmPp7 – jLab19

回答

0

所有的功能首先还没有名字,所以你不能在任何地方把它叫做:

function myFilter(filter){}; 
//or 
var myFilter = function(filter){}; 

其次,对于您的示例(在代码中如果条件是这两种情况下,因此它不能正常工作)相同:

function myFilter(filter){ 
    //you need to check what value filter has 
    if($(".col3:contains("+filter+")") && (filter === "john")){ 
    $(".rigaEven").show(); 
    } 
    if(!$(".col3:contains("+filter+")") && (filter === "paul")){ 
    $(".rigaOdd").show(); 
    } 
} 
+0

我可以从过滤器生成regExp,而不是使用我的div的文本进行匹配吗? – jLab19

+0

不是很明白你想要什么,但jQuery'contains()'需要一个参数字符串,据我所知regexp'match()'产生一个数组,所以我猜你最终可以做一些像'“.col3:contains “+ filter [i] +”)'在一个循环中 – sTx

+0

现在我试试这个,但是还没有工作https://pastebin.com/TkCmi7m0 – jLab19

相关问题