jQuery从id属性显示div

jQuery从id属性显示div,jquery,html,Jquery,Html,我有两个输入 <div class="form-group"> <label>Store Username <span>*</span></label> <input required type="text" name="storeusername" class="form-control info" id="1" /> </div> <div class="form-group"> &l

我有两个输入

<div class="form-group">
  <label>Store Username <span>*</span></label>
  <input required type="text" name="storeusername" class="form-control info" id="1" />
</div>
<div class="form-group">
  <label>Store Name<span>*</span></label>
  <input required type="text" name="storename" class="form-control info" id="2" />
</div>

但这是行不通的!没有显示div。有人能帮我解释一下吗?

我不确定您的“隐藏”类是什么样子,所以我使用内联样式隐藏div,然后使用jquery显示/隐藏类似于您已经在做的事情。看小提琴

HTML:


我不确定您的“隐藏”类是什么样子的,所以我使用内联样式来隐藏div,然后使用jquery来显示/隐藏类似于您已经在做的事情。看小提琴

HTML:

.hide()和.show()是不同于拥有或删除“隐藏”类的机制。尝试将最后一行更改为: $(“#div”+id).removeClass(“隐藏”).show()

.hide()和.show()是不同于拥有或删除“隐藏”类的机制。尝试将最后一行更改为:
$(“#div”+id).removeClass(“隐藏”).show()

使用jQuery.hide()函数与添加隐藏类以隐藏div不同,因此删除隐藏类不会显示div。可以通过添加和删除类来隐藏和显示,也可以使用jQuery.hide()和.show()函数来隐藏和显示。不要混用方法,否则会给您带来麻烦。

使用jQuery.hide()函数与添加隐藏类以隐藏div不同,因此删除隐藏类不会显示它们。可以通过添加和删除类来隐藏和显示,也可以使用jQuery.hide()和.show()函数来隐藏和显示。不要混用这些方法,否则会给您带来麻烦。

我知道您的意图是在用户将要在文本框中输入值时显示一个
div

由于用户也可以使用键盘导航到文本框中,我建议您使用焦点事件触发调出div的逻辑,而不是
单击

$(".info").on('focus',function()
{
   $(".infoDiv").hide();
   var id = $(this).attr('id');
   $("#div"+id).show();
});

我知道您的意图是在用户将要在文本框中输入值时显示一个
div

由于用户也可以使用键盘导航到文本框中,我建议您使用焦点事件触发调出div的逻辑,而不是
单击

$(".info").on('focus',function()
{
   $(".infoDiv").hide();
   var id = $(this).attr('id');
   $("#div"+id).show();
});

Try:var id=$(this.attr('id');要获取当前/已单击的元素id…,请选择“否”。它不起作用!Try:var id=$(this.attr('id');要获取当前/已单击的元素id…,请选择“否”。它不起作用!您也可以使用
this
,而不是传入
事件。解决方案的关键在于使用
.show()
而不是删除类。jQuery函数不添加类,而是更改内联样式。Krillgar它实现了相同的结果!这可能行得通。之前,我为所有div创建了单独的函数。现在,我想创建更智能的代码。这样就可以这样做了,您也可以使用
This
来代替传入
事件。解决方案的关键在于使用
.show()
而不是删除类。jQuery函数不添加类,而是更改内联样式。Krillgar它实现了相同的结果!这可能行得通。之前,我为所有div创建了单独的函数。现在,我想创建更智能的代码。这行了,这行了,这就是为什么最后一行行不通的原因。但是,关于需要使用
this
查找
id
的注释是正确的。这就是最后一行不起作用的原因。但是,关于需要使用
this
查找
id
@Alexis乐于帮助的注释是正确的:)@亚历克西斯很乐意帮忙……)
<div class="form-group">
  <label>Store Username <span>*</span></label>
  <input required type="text" name="storeusername" class="form-control info" id="1" />
</div>
<div class="form-group">
  <label>Store Name<span>*</span></label>
  <input required type="text" name="storename" class="form-control info" id="2" />
</div>

<div id="div1" class="infoDiv" style="display:none;">
  <div class="company-story-content"><h2 class="story-title">Store <span class="color-text">Username</span> </h2></div>
  <p>Store username is unique and it will be used to find your store.</p>
  <p>For example www.flashcart.com/<span class="color-text">abc</span> to find store that has <span class="color-text">abc</span> username.</p>
  <p>Please keep in mind before choosing username.</p>
  <ul>
    <li>&nbsp;&nbsp;&nbsp;&nbsp;Username can contain <span class="color-text">Alphabets</span><li>
    <li>&nbsp;&nbsp;&nbsp;&nbsp;Username can contain <span class="color-text">Numbers</span>.</li>
    <li>&nbsp;&nbsp;&nbsp;&nbsp;Username can contain <span class="color-text">Underscores</span>.</li>
  </ul>
</div>

<div id="div2" class="infoDiv" style="display:none;">
  <div class="company-story-content">
    <h2 class="story-title">Some other<span class="color-text">Username</span> </h2></div>
  <p>Div</p>
</div>
 $(document).ready(function()
      {
        $(".info").click(function(event)
        {
          $(".infoDiv").hide();
          var id = $(event.target).attr('id');
          $("#div"+id).show();
        });
      });
$(".info").on('focus',function()
{
   $(".infoDiv").hide();
   var id = $(this).attr('id');
   $("#div"+id).show();
});