【问题标题】:jquery selector: ID starts with something (keyword "section")jquery 选择器:ID 以某事物开头(关键字“section”)
【发布时间】:2011-10-26 01:47:58
【问题描述】:

我想定位所有 id 以“section”开头的 div;对于这些 div 中的每一个,我想显示以“pre”开头的输入类型的子 div。

    //groups = $('div [id^=section]');  
    groups = $('[id^=section]');    

    $.each(groups, function(key, group) {
         alert(key + ': ' + group); 
        //inputs = group.('[id^=pre]'); 
    });


<div id="section-A1">       
    <input id="preBeginDtl" name="BeginDtlFields" value="" type="hidden">
    <input id="other" name="name2" value="" type="input">
    <input id="preGroup" name="GRP" value="AA" type="hidden">
</div>

【问题讨论】:

  • 好的,就这样吧。有什么问题?

标签: jquery css-selectors


【解决方案1】:
groups = $('[id^=section]');    

$.each(groups, function(key, group) {
    inputs = $(group).children('[id^=pre]'); 
});

【讨论】:

    【解决方案2】:

    也许您应该向 div 添加类“section”和“pre”而不是寻找部分 id?然后你可以搜索

    groups = $('div.section div.pre');
    

    您所做的基本上是基于类的查找,这将是适当的机制。

    【讨论】:

      【解决方案3】:

      这将用作选择器:

      $('[id^=section] > [id^=pre]')
      

      但是,我认为您不能更改输入元素的 type 属性。您可能只想将“pre”输入设置为 type="text"(而不是 type="hidden"),并将其 css 显示属性设置为 none。然后使用 jQuery show() 取消隐藏。

      <div id="section-A1">       
          <input id="preBeginDtl" name="BeginDtlFields" value="" type="text" style="display:none">
          <input id="other" name="name2" value="" type="text">
          <input id="preGroup" name="GRP" value="AA" type="text" style="display:none">
      </div>
      

      $('[id^=section] > [id^=pre]').show()
      

      【讨论】:

        猜你喜欢
        • 2011-06-27
        • 2015-09-24
        • 1970-01-01
        • 2016-05-18
        • 1970-01-01
        • 2013-01-07
        • 1970-01-01
        相关资源
        最近更新 更多