【问题标题】:jQuery how to select children first level div'sjQuery如何选择儿童第一级div
【发布时间】:2013-03-25 09:55:56
【问题描述】:

我在定位一些没有类的 div 时有点问题,位于表结构中:

<table class="blog" cellspacing="0" cellpadding="0">
  <tbody>
    <tr>
      <td valign="top">
        <div>               <--- I want to target this
          <table class="some_table_class">
            <tbody>
              <tr>
                <td class="someclass" valign="top">
                   <div>This div should stay untouched, and every of his potential div children</div>
                </td>
              </tr>
            </tbody>
          </table>
        </div>
        <div></div>      <--- I want to target this
        <div></div>      <--- I want to target this
        <div></div>      <--- I want to target this
         .
         .
         .
      </td>
    </tr>
  </tbody>
</table>

我试图在 CSS .blog td[valign="top"]&gt;div 中做到这一点,但这也影响了第二个 div + 似乎 IE 不明白 [valign="top"] 是什么

所以我想用 jQuery 为这些 div 添加一些类

有什么有效的方法吗?

.blog&gt;tbody&gt;tr&gt;td&gt;div ... 我觉得有点奇怪,用起来时间长了

感谢您的任何想法

我忘了.. 我只能用 jquery 编辑 html 结构,我无权访问 .php / .html 文件

【问题讨论】:

  • 为您的 div 分配类或 ID,您可以使用 $("#mydivID") 或 $(".mydivClass") 轻松解决它们

标签: jquery css target


【解决方案1】:

试试这个

 $('td[valign="top"]').find("div") // this will find all the divs

更新

你要么用类选择器命名所有的 div,然后用类选择器来获取它..

否则您可以使用not() 排除它..但需要提供一个应该排除的 id 或类...

HTML

<div id="notthis">This div should stay untouched, and every    

jQuery

$('td[valign="top"]').find("div:not('#notthis')").addClass('test');

fiddle中的简单示例

评论后更新

$('td[valign="top"]').find("div:not('.someclass div')").addClass('test')

【讨论】:

  • 它也确实影响&lt;td class="someclass" valign="top"&gt; &lt;div&gt; 我想我只想针对第一级表中的那些div
  • 选择器匹配第一级和嵌套的 td => 你的第一行将返回 UNWANTED div 两次,而第二行将返回一次。
  • 你应该为那些全局 td 添加一个类
  • 看起来不错,...我发现$('td[valign="top"]').find("div:not('.someclass div')").addClass('test'); 也可以工作,而且可能是更好的解决方案,以防#notthis 包含其他一些div。非常感谢:)
  • 是的......你明白了...... :)..该死的!我错过了..无论如何..很高兴它有帮助....我也会通过答案更新..谢谢.. :)..快乐编码
【解决方案2】:

在我看来,你应该更多地依赖你自己设置的类,而不是html属性。

如果您确定自己的标记,请尝试 $('table.blog&gt;tbody&gt;tr&gt;td&gt;div') 。 但是,如果我是你,我会在更靠近目标项目的地方添加一个类,以便编写一个更简单的选择器。这样可以更灵活地维护。

【讨论】:

  • 是的,这就是为什么我想针对那些 div 为它们添加一些我不能在 .php 文件中执行的类:/
  • 好的,如果你不能修改初始标记,我认为有一点客户端处理来增强它是一种有意义的做法。然后构建更多基于增强标记的稳定代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-15
  • 2020-03-30
  • 2011-02-25
  • 2011-12-16
  • 2012-11-23
  • 1970-01-01
相关资源
最近更新 更多