jQuery 获取选择器值帮助

发布于 2024-09-28 16:38:53 字数 777 浏览 2 评论 0原文

我有一个 WP 博客,其中有一些通过 PHP 循环生成的 DIV。我希望能够在有人单击 DIV 时显示有关该 DIV 的更多信息。

代码如下所示:(

<div class="story item-1">
<div class="story item-2">
<div class="story item-3">
<div class="story item-4">

等等。可以是任意数量的。)

单击上面的其中一项应该会出现以下内容之一:

<div class="data preview-1">
<div class="data preview-2">
<div class="data preview-3">
<div class="data preview-4">

我正在执行以下操作:

$('.story').click( function() {
  var getNum   =  jQuery(this).attr('class');
  alert('hi ' + getNum);
});

但是如何提取“数字”值(1 、2、3、4 等)我刚刚单击到变量中的项目?如果我可以将其放入诸如“num”之类的变量中,我就可以轻松地使用 jQuery .hide 和 .show 来执行操作。到目前为止我所拥有的得到了整个班级的价值。只需要二等的号码即可。

我将不胜感激任何帮助!谢谢!

I have a WP Blog with a few DIVs generated through PHP loops. I would like to be able to show additional about a DIV when someone clicks on it.

The code looks like this:

<div class="story item-1">
<div class="story item-2">
<div class="story item-3">
<div class="story item-4">

(etc. Could be any number of these.)

Clicking on one of the items above should make one of the following appear:

<div class="data preview-1">
<div class="data preview-2">
<div class="data preview-3">
<div class="data preview-4">

I'm doing the following:

$('.story').click( function() {
  var getNum   =  jQuery(this).attr('class');
  alert('hi ' + getNum);
});

But how do extract the "number" value (1,2,3,4,etc.) of the item I just clicked into a variable? If I can get that into a variable such as "num" I can then easily use jQuery .hide and .show to perform actions. What I have so far gets the entire class value. Just need the number from the second class.

I'd appreciate any help! Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

无法言说的痛 2024-10-05 16:38:53

我会.split() 在连字符上,.pop() 结果数组中的最后一项(数字)。然后 .show() 适当的预览。

$('.story').click( function() {
    var getNum = this.className.split('-').pop();
    $('.data.preview-' + getNum).show();
});

I'd .split() on the hyphen, and .pop() the last item (the number) off the resulting array. Then .show() the appropriate preview.

$('.story').click( function() {
    var getNum = this.className.split('-').pop();
    $('.data.preview-' + getNum).show();
});
够运 2024-10-05 16:38:53

当然,您可以使用字符串操作来提取id,但我提出了一个更好的解决方案:

DOMReady上,循环遍历所有div,并为元素分配一个索引使用jQuery的轻量级数据存储机制,.data()

免责声明:未经测试

$(document).ready(function() {
   $('div.story').each(function(index) {
      $.data(this, "num", index);
   });
});

然后您可以在单击中将其拉出:

$('.story').click( function() {
  var getNum   =  $.data(this, "num");
  alert('hi ' + getNum);
});

这只是一个示例,您最终可能需要额外的元数据,并且您可以将任何您想要的内容绑定到元素,并在以后使用它们。

Of course you could use string manipulation to pull out the id, but I propose a better solution:

On DOMReady, loop through all the div's, and assign an index to the elements using jQuery's lightweight data storage mechanism, .data():

Disclaimer: untested

$(document).ready(function() {
   $('div.story').each(function(index) {
      $.data(this, "num", index);
   });
});

Then you can pull it out in your click:

$('.story').click( function() {
  var getNum   =  $.data(this, "num");
  alert('hi ' + getNum);
});

That's just an example, you may end up needed extra metadata, and you can bind whatever you want to the elements, and use them later.

又怨 2024-10-05 16:38:53
$('.story').click(function() {
    var index = /item-(\d)/.exec($(this).attr('class'))[1] - 1;
    $('.data').hide().eq(index).show();
});
$('.story').click(function() {
    var index = /item-(\d)/.exec($(this).attr('class'))[1] - 1;
    $('.data').hide().eq(index).show();
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文