在 jQuery 中引用 $(this) 的元素

发布于 2024-11-02 13:33:27 字数 255 浏览 1 评论 0原文

我正在迭代 jQuery 中的一系列元素(有意)。

所以基本上我想要这样的东西,但具有正确的语法:

$(".sonicrow").each(function() {
    $(this + 'somediv').css('background-color', 'red');
});

显然这是某种对象/字符串混杂。访问 this 对象中的特定 somediv 的正确语法是什么?

谢谢, 约翰.

I'm iterating through a series of elements in jQuery (intentionally).

So basically I want something like this, but with the correct syntax:

$(".sonicrow").each(function() {
    $(this + 'somediv').css('background-color', 'red');
});

Obviously this is some kind of object/string mishmash. What would the correct syntax be for accessing the specific somediv within the this object?

Thanks,
John.

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

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

发布评论

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

评论(4

梦幻的心爱 2024-11-09 13:33:27
$(".sonicrow").each(function() {
    $('somediv', this).css('background-color', 'red');
});

其中第二个参数是选择器的“上下文”。当然,如果是类,则 somediv 必须是 .somediv;如果是 id,则必须是 #somediv

这个问题与 How to get the child of the $(this) 选择器? 相关,它也包含这个答案

...
    $(this).find('somediv').css(...)
...

根据 jQuery 上下文选择器 $(selector, context) 是用 $(context).find(selector) 实现的。

$(".sonicrow").each(function() {
    $('somediv', this).css('background-color', 'red');
});

Where the second parameter is the "context" of the selector. Of cause your somediv have to be .somediv if it´s a class or #somediv if it´s an id.

This question is related to How to get the children of the $(this) selector? which also contains this answer

...
    $(this).find('somediv').css(...)
...

According to jQuery context selector $(selector, context) is implemented with $(context).find(selector).

清君侧 2024-11-09 13:33:27

试试这个:

$(".sonicrow").each(function() {
    $(this).find('somediv').css('background-color', 'red');
});

Try this:

$(".sonicrow").each(function() {
    $(this).find('somediv').css('background-color', 'red');
});
乖乖 2024-11-09 13:33:27
$(".sonicrow").each(function() {
    $(this).find('.somediv').css('background-color', 'red');
});

你可以这样做。

$(".sonicrow").each(function() {
    $(this).find('.somediv').css('background-color', 'red');
});

you can do like this.

东京女 2024-11-09 13:33:27

算法:

HTML结构是树形结构。因此,当您引用 $(".sonicrow") 时,您将到达一个以“sonicrow”作为类名的节点。现在您需要搜索作为 div 的子节点...

因此您的代码将如下所示:

  1. 查找具有“sonicrow”类名的元素
  2. 查找类型为“div”的任何子元素...
  3. 应用 css

解决方案:

查找以“sonicrow”作为类名的节点的引用: var route=$(".sonicrow");

查找作为 div 的子节点: var desiredChild = route.find("div");

应用css: desiredChild.css("property","value");...


将其合并到 jquery 链中:

$(".sonicrow").find("div").css('background-color', 'red');

但是您想对每个具有“的元素重复此操作sonicrow" 类名,所以你必须循环,你的代码变成:

$(".sonicrow").each(function() 
{
    $(this).find("div").css('background-color', 'red');
});

PS 我在这里使用了 $(this) 因为 $(".sonicrow") 返回了一个对象,并且你正在遍历该特定对象,所以你必须使用 “这个”变量到指向该元素。

另一方面,您正在使用 Jquery,因此 $(this) 为您提供了一个 jquery 对象来完成此操作,否则您必须使用基本的 javascript 语法,例如: this.style.css.property=value 语法:-)

我希望你已经得到答案了......

Algorithm:

HTML structure is a tree structure. So when you refer $(".sonicrow") you reach to a node with "sonicrow" as a class name. Now you need to search the children nodes which is a div...

So your code will be something like this:

  1. Find elements having "sonicrow" class name
  2. Find any children element whose type is "div"...
  3. Apply css

Solution:

Find a reference to the nodes having "sonicrow" as class name: var route=$(".sonicrow");

Find child nodes which is a div: var desiredChild = route.find("div");

Apply css: desiredChild.css("property","value");...


Merge this into jquery chain:

$(".sonicrow").find("div").css('background-color', 'red');

But you want to repeat this for every element which has "sonicrow" class name, so you have to loop and your code becomes:

$(".sonicrow").each(function() 
{
    $(this).find("div").css('background-color', 'red');
});

P.S. I have used $(this) here because $(".sonicrow") has returned an object and you are traversing that particular object so you have to use "this" variable to point into that element.

On the other hand, you are using Jquery so $(this) gives you an jquery object to work this, otherwise you had to use basic javascript syntax like: this.style.css.property=value syntax :-)

I hope you have got your answer...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文