2016-04-29 134 views
3

首先,我收到的JSON數據行和打印的HTML數據像檢查元素有什麼

<p id="checker">1+2</p> 

和下面我有一些複選框

<p style="display:none" id="1">cat</p> 
<p style="display:none" id="2">dog</p> 
<p style="display:none" id="3">fish</p> 

,我會喜歡做一些p標籤出現,如果if語句是真的

if ($("#checker").html() == "1") { 
    $("#1").css("display", "block"); 
} 

elseif($("#checker").html() == "2") { 
    $("#2").css("display", "block"); 
} 

,但我意識到,這不能滿足我的需要。 這個任務還有其他解決方案嗎?

+0

我想知道可以做的,而不是用的.html如果hasClass() – anson920520

+0

更好的是,使用的.text(類似的東西)() –

回答

3

根據值get元素和show來分割字符串並遍歷它們。

$('#checker') 
 
    .html() // get html content 
 
    .split('+') // split string by + 
 
    .forEach(function(v) { // iterate over them 
 
    $('#' + $.trim(v)).show() // get element by id and show 
 
    })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<p id="checker">1+2</p> 
 
<p style="display:none" id="1">cat</p> 
 
<p style="display:none" id="2">dog</p> 
 
<p style="display:none" id="3">fish</p>

+0

這是知府。謝謝,這只是非常先進,但很簡單。 – anson920520

+0

@ anson920520:很高興幫助你:) –

0

是的,你可以使用jQuery的show()功能,像這樣:

if($("#checker").html()=="1"){ 
    $("#1").show(); 
} 
elseif($("#checker").html()=="2"){ 
    $("#2").show(); 
} 

如果您需要再次隱藏起來,你可以使用hide()功能以同樣的方式。

0

有什麼不代表==。你可以使用indexOf來檢查一個字符串是否有東西。

試試這個

if($("#checker").html().indexOf("1")!=-1){ 
     $("#1").css("display","block"); 
    }