显示/隐藏JQuery

Show/Hide JQuery?

本文关键字:JQuery 隐藏 显示      更新时间:2023-09-26

我遇到了一个问题,我必须在同一个td标记中显示/隐藏多个标签。这是我的JQuery代码:

$j( document ).ready(function() {
    var records = [];
    var userID = 'here I am passing user ID'
    ~[tlist_sql;
        SELECT ID1, User_ID, ID2
        From RESERVATIONS
    ]
    records.push({'idOne':"~(ID1)",'idTwo':"~(User_ID)",'idThree':"~(ID2)"});
    [/tlist_sql]
    for(var i=0; i< records.length; i++){
      //here I am looking for matchin userID in my records array
      if(records[i].idTwo == userID){
        //If match, I want to hide input field and display name.
        $j('#hide_' + records[i].idOne).parent('.hideEmail').hide().next('.showName').show();
      }
      //Here I'm looking if any of my records idThree has value 0
      if(records[i].idThree == '0'){
        //if match hide input and show word 'Reserved' 
        $j('#hide_' + records[i].idOne).parent('.hideEmail').hide().next('.showResreved').show();
      }
    }
});

这是我的html代码:

<td>
    <span class="hideEmail">
        <input type="text" value="" id="hide_~(ID1)"/>
    </span>
    <label class="showName" style="display:none">
        <span class="firstLast">Display Name</span>
    </label>
    <label class="showReserved" style="display:none">
        <span class="notavailable">Reserved</span>
    </label>
</td>

所以,一旦我把两个标签组合在一起,问题就出现了。在第一点上,我只有一个类"showName"的标签,我的逻辑运行良好。但一旦我在JQuery中添加了一个if语句,并添加了另一个类为"showReserved"的标签,我的代码仍然显示名称标签,类"hideEmail"被隐藏,但类"showReserveed"从未显示。有人能告诉我为什么这不起作用吗?我是否应该不组合两个标签,或者我的jquery中出现了问题?

以下是我的工作示例:https://jsfiddle.net/dmilos89/nephebbv/2/

这部分的问题是:

$j('#hide_' + records[i].idOne).parent('.hideEmail').hide().next('.showResreved').show();

您键入的"showReserved"错误。

这里有一个简单的解决方案:

$j('#hide_' + records[i].idOne).parent('.hideEmail').hide().next('.showReserved').show();