【问题标题】:JQuery selector multi-class objectsJQuery 选择器多类对象
【发布时间】:2011-03-10 07:19:26
【问题描述】:

大家好,我一直在尝试让一系列对象出现,这些对象有多个与之关联的类

<div class="Foo Bar">
    Content
</div>

<script>
    alert($('.Foo').length);
</script>

上面的选择器返回 0。不幸的是,这是完全不可能向谷歌询问的问题之一(至少据我所知)。

我怎样才能使这个查询工作?

更具体地说,我有一个如下所示的表格:

<table>
    <tr class="Location2">
        <td>Data</td>
        <td>Data</td>
        <td>Data</td>
        <td>Data</td>
    </tr>
    <tr class="Location3 Territory4">
        <td>Data</td>
        <td>Data</td>
        <td>Data</td>
        <td>Data</td>
    </tr>
</table>

当我编写脚本时:

alert($('.' + (Var that = 'Territory4')).length));

我得到 0。

我精通 HTML 和 CSS,我知道我不应该使用表格等,但这是一个特例。

【问题讨论】:

  • 为我返回 1:jsfiddle.net/jSmfu
  • 首先,您的代码中有一个额外的)。你能用最少的、可解析的代码重现错误吗?

标签: javascript jquery css class jquery-selectors


【解决方案1】:

编辑:基于更新后的问题。

您的代码引发语法错误。将变量赋值带出选择器。

var that = 'Territory4';

alert( $('.' + that).length );

选择器是正确的。我猜你的代码在 DOM 完全加载之前正在运行。

试试这个:http://jsfiddle.net/QWNPc/

$(function() {
    alert($('.Foo').length);
});

在做:

$(function() {
    // your code
});

相当于做:

$(document).ready(function() {
    // your code
});

确保在代码运行之前 DOM 已加载。

http://api.jquery.com/ready/

【讨论】:

  • 代码是一个似乎不起作用的点击事件。它紧跟在创建表格的相当大的方法调用之后,但是当我单击时表格已完全加载。
  • @C Bauer - 所以click 事件不会触发?或者它返回错误的结果?您必须显示您的代码以查看问题所在。只要所选元素在 DOM 中,您发布的代码就可以工作。
  • 这就是问题所在,创建该表的代码很多。我削减了所有内容以使其更简单...
  • @C Bauer - 麻烦的是你解决了这个问题。 :o) .Foo 元素(或实际上是什么)是表格的一部分吗?再说一遍,你是说click 处理程序根本不会触发吗?或者它触发了,但给出了错误的结果?还是在table 完成后触发点击。您的代码可以做的事情有很多可能性。
  • @C Bauer - 你有一个语法错误。您需要将变量赋值从选择器中取出。我会更新我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-12
  • 2012-10-11
  • 1970-01-01
  • 2013-02-02
  • 1970-01-01
  • 2012-02-13
相关资源
最近更新 更多