在目标 div 上触发一个 jQuery 事件(跨度 ID 中的特定 class)

Trigger a jQuery event on a target div (specefic class in an span id)

我目前正在尝试将点击与 Web 应用程序中的向右箭头按下相关联。我这里的东西正在工作,但每次我单击我的按钮时,都会弹出我页面中的每个 .t-input 。我目前正在使用此代码:

        comboboxArrowDown.onclick = function () {
            var e = jQuery.Event("keydown");
            e.which = 39; // Key arrow right = 39
            $('.t-input').trigger(e);
        }

此代码有效,因为我直接引用输入 class,即:'t-input'。现在,我想要做的是 select 要使用的输入。这里困难的部分是,不同的框具有相同的输入 class 名称,我无法更改它。

如果我的输入在 id="a" 范围内,您能解释一下如何解决这个问题吗,其中包含一个名为 class="b" 的 div,其中包含另一个名为 class="c" 的 div,然后是我的输入。

我尝试使用

document.getElementById("a").getElementsByClassName("t-input")[0] 

但我不能在上面使用 .trigger...

谢谢!

$("span#a div.b div.c .t-input").trigger(e);

基于你所说的 id="a" 和 class="b":

comboboxArrowDown.onclick = function () {
            var e = jQuery.Event("keydown");
            e.which = 39; // Key arrow right = 39
            $('#a.b.c input').trigger(e);
        }

如果这不起作用或不清楚,为了能够为您提供更好的答案,请提供实际的 html structure/code.

我认为你混合了纯粹的 javascript 和 jQuery。

跨度和 id="a",

#a

其中包含一个名为 class="b" div

.b

,其中包含另一个名为 class="c"

的 div

.c

,然后是我的输入

.t-input

$("#a > .b > .c > .t-input")

这将获取所有具有 class 的对象 .t-input INSIDE .c INSIDE .b INSIDE id #a

的元素

给出的其他答案肯定会得到相同的结果,但 b 可能在 c 内,也可能是 c 在 b 内。

@grateful,有没有办法做同样的事情,但使用 comboboxesArrowDown 变量。因为我是用document.querySelectorAll的方式找的,但是还需要指定路径!这是代码:

    var comboboxesArrowDown = document.querySelectorAll(".t-icon.t-arrow-down");
    for (var i = 0; i < comboboxesArrowDown.length; i++)
    {
        var comboboxArrowDown = comboboxesArrowDown[i];
        comboboxArrowDown.onclick = function () 
        {
            var e = jQuery.Event("keydown");
            e.which = 39; // Right arrow key (Keycode #39)
            $("#AutresPlacements_Placements_1__Terme-Validation > .t-widget > .t-dropdown-wrap > .t-input").trigger(e);
        }
    }