首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取元素类型

获取元素类型
EN

Stack Overflow用户
提问于 2011-06-13 07:47:43
回答 2查看 60关注 0票数 1

假设我有一个假设的html布局,如下所示(虽然假设,但我正在实现类似的东西,但为了这个问题,我已经简化了它):

代码语言:javascript
复制
<div id='start' class='checkpoint'>
  <ul>
    <li><input name='need_this'/></li>
    <li><input name='need_also'/></li>
    <li>
      <div id='stop' class='checkpoint'>
        <ul>
          <li><input name='ignore_this' /></li>
        </ul>
      </div>
    <li>
      <div>
         <div><input name='need_again' /></div>
      </div>
    </li>
  </ul>
  <input name='need_aswell' />
</div>

我想要做的是,从$('#start')开始,获取所有具有'name‘属性的元素,除非它们存在于一个新的检查点类中。虽然我熟悉.find()和.nextUntil(),但我的理解是,当它们逐步读取html时,会在中途遇到'checkpoint‘类时立即停止?我想搜索所有'.checkpoint‘元素,直到#start div结束。

如果有人能告诉我这件事的正确方法,我将不胜感激?(可能是一些我不熟悉的jQuery条件)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-13 07:59:38

这应该可以做到:

代码语言:javascript
复制
$('#start [name]').not('#start .checkpoint [name]')

虽然我不知道这有多有效。

附注:input元素应该在<form>中。

票数 3
EN

Stack Overflow用户

发布于 2011-06-13 08:02:16

对于您的HTML代码,这是我唯一能想到的:

代码语言:javascript
复制
$('#start').find('input[name]').each(function()
{    
    if(!$(this).parents('div[id!=start]').hasClass('checkpoint'))
    {
        $(this).css('background-color', 'green');
    }
});

jsFiddle上演示。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6325491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档