1

我想结合我的选择器,它根据鼠标悬停事件选择一个元素。这就是我到目前为止所拥有的。

parentItem.mouseenter(function ()
{
    var childItems = $(this).add(this + "li:first");
    childItems.show();
});

我知道我不能单独使用“this”,也不能将两者加在一起,因为它不是字符串。

我将如何实现这个概念?谢谢。

4

4 回答 4

1

你不能这样做this + "li:first"this是一个 DOMElement,而不是一个字符串。做就是了:

$(this).add("li:first");

虽然,这可能不是你想要的。这将<li>在页面上找到第一个(并将其添加到包含 的 jQuery 对象中this)。

如果你想要第一个<li>是 的孩子parentItem,试试这个:

$("li:first", this);

(这与 相同$(this).find("li:first");

于 2012-05-08T21:21:36.837 回答
1

如果我理解正确,您正在尝试选择li触发事件的元素下的第一个?您可以this用作上下文

parentItem.mouseenter(function ()
{
    var childItems = $("li:first",this);
    childItems.show();
});
于 2012-05-08T21:21:53.037 回答
0

您不能连接this(在这种情况下是 DOM 元素),因为它不能被强制转换为字符串。 .add只需将更多元素添加到集合中。 $(this)已经与当前元素匹配(即鼠标悬停),因此这似乎可以满足您的需要:

$(this).add("li:first").show();
于 2012-05-08T21:19:54.350 回答
0

我想结合我的选择器,它根据鼠标悬停事件选择一个元素。这就是我到目前为止所拥有的。

您没有指定要实现的目标,但是您可以使用 next() prev() child() parent() jQuery 方法

编辑:Ayways 是您的目标只是简单地选择父母孩子的第一个元素吗?

于 2012-05-08T21:21:43.500 回答