如何使用JQuery隐藏特定的子标记

如何使用JQuery隐藏特定的子标记,jquery,html,Jquery,Html,我试图找出如何将一个特定元素隐藏在另一个元素中。例如: <form name='demo_form'> First name: <input type="text" name="fname"><br> Last name: <input type="text" name="lname"><br> <select name="cars"> <option value="volvo">Vol

我试图找出如何将一个特定元素隐藏在另一个元素中。例如:

  <form  name='demo_form'>
  First name: <input type="text" name="fname"><br>
  Last name: <input type="text" name="lname"><br>
  <select name="cars">
    <option value="volvo">Volvo</option>
    <option value="saab">Saab</option>
    <option value="fiat">Fiat</option>
  </select>
  <input id="submit1" type="submit" value="Submit">
  </form>
会隐藏整件事,只留下姓氏文本,但这对我来说真的没用

我试过了

$(demo_form.select).hide();
$("demo_form > select").hide();
但我什么也没得到

我知道我能做到

$("form > select").hide();
$("#submit1").click(function() {
         event.preventDefault();
         $("form > select").show();
})
该节目是我一直在玩弄的东西,我想也许我希望在用户提交后显示额外的信息

我知道我能做的唯一问题是它会抓取所有表单和所有选择,我希望能够抓取一个特定表单并抓取它各自的选择,或者我想要的任何标记,而不必总是给那些子标记一个id


任何建议都很好!谢谢。

如果您希望根据“名称”属性进行选择,这应该对您有用:

$("form[name='demo_form'] > select").hide();

这将仅隐藏作为具有demo\u form的name属性的表单的直接子级的select元素。

我认为您要查找的只是:

$('select[name=cars]').hide();
就个人而言,我喜欢给我的输入一个相同值的名称和id:

<select id="cars" name="cars"> ... </select>

name属性用于在提交表单时发送数据。但是,有一些方法可以不使用name属性发送数据。

您可以使用jQuery的选择器上下文将选择器限制为特定元素。例如,要隐藏表单中的所有选定元素,请执行以下操作:

$('select', 'form[name="demo_form"]').hide();

将元素作为第二个参数传递给$将限制对选择器的搜索。上述操作将影响form[name='demo\u form']元素中的所有select标记

您想在什么情况下隐藏select?是的,这是可能的,但这取决于许多因素。你想什么时候把它藏起来?总是有一个选择吗?如果有更多的选择,你想把它们都隐藏起来吗?在这一点上,我只是想弄清楚怎么做,我没有想到它周围的参数。现在,我想我不需要它,但我不想从html文档中删除它,只是暂时隐藏它。我该怎么做呢?@Umeed把它藏起来?啊,是的,把它藏起来,不管Mikey和jeffdill怎么回答。谢谢但是你和科里提出了一些很好的问题,我现在要试着找出一种方法来解决。哇,我不知道你可以这样做,哈哈,这真是太棒了,干净又快。谢谢哦,真有趣。如果我想在提交表单时发送数据,那么使用ID和名称会更简单吗?或者,您正在谈论的其他方法是否可以将这两种方法结合起来以使其更简单?仅使用id和名称更简单。其他方法需要更多的工作。这正是我想要的。谢谢!我不知道我们可以使用[]获取元素。Mikey的解决方案既快又干净,稍后会派上用场,但这正是我所需要的谢谢Jeff!令人惊叹的很乐意帮忙-
$('#cars').hide();`  
$('select', 'form[name="demo_form"]').hide();