2

我对此有点挣扎:假设我在正文中有一个类,<body class="video page">在我的页面中我有一个分页,它<body class="video-2 page">在每一页添加一个这样的数字。我想以该类为目标,video无论它是否具有数字,以便在满足条件时应用一些 jquery。

我怎么做?

4

6 回答 6

2

您可以使用此属性选择器来选择具有以 开头的类属性的元素video-

[class^="video-"]

但要使其正常工作,您必须确保video-该类是元素class属性中的第一个类(请参阅http://jsfiddle.net/Czyep/)。

video将类和分页类分开可能会更好,例如:

<body class="video page-2 page">
于 2012-11-23T09:35:34.587 回答
1

我会像class="video two page"这样拆分课程,以便您仍然可以分别处理这两个课程。不过你可以做类似的事情

$('body[class*=video]')
于 2012-11-23T09:35:17.537 回答
0
$("body").not(".video");

应该选择所有以数字结尾的实体。你也可以这样做:

if($("body").is("[class$='video-'")) {}
于 2012-11-23T09:33:28.957 回答
0

你试过这样的事情吗?

$('.video,.video-'+pageNumber).dosomething()
于 2012-11-23T09:33:43.570 回答
0

您可以使用以 selector 开头的属性

$("body[class^='video']");
于 2012-11-23T09:36:48.533 回答
0

假设我正确理解了您的问题,我建议您在选择器中使用串联。

我假设您知道您在 body 标签上指定了两个类,即 video 和 page 或 video-2 和 page。因此,我假设该页面在您的选择中很重要,应该包含在您的选择器中。

因此我会使用这种语法,虽然不像某些语法那样简洁,但很清楚发生了什么。显然,您需要将其合并到驱动您的页面选择的逻辑中。

var suffix = "";

$(".video" + suffix + ".page").dosomething();  // select <body class="video page">

suffix = "-2";

$(".video" + suffix + ".page").dosomething();  // select <body class="video-2 page">

请注意,选择器中的类之间不应有空格,因为它们已在 html 中的同一标记中声明。

您是否指定了类似的内容

<body class="video">    // body wrapper
    <div class="page">  // page wrapper
    </div>
</body>

然后需要一个空格,因为您随后希望在正文中的 div 页面上与类视频或视频 2 进行匹配(视情况而定)。

suffix = "-2";

$(".video" + suffix + " .page").dosomething();  // select <body class="video-2"><div class="page">
于 2012-11-23T09:59:10.697 回答