2016-04-29 86 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"); 
    }