在目标div上触发jQuery事件(span id中的specefic类)

时间:2016-05-30 14:57:54

标签: jquery triggers click getelementbyid getelementsbyclassname

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

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

此代码正常运行,因为我直接引用了输入类:' t-input'。现在,我想要做的是选择要使用的输入。这里的难点在于,不同的框具有相同的输入类名称,我无法改变它。

如果我的输入位于带有和id =" a"的范围内,你可以解释如何解决这个问题,它包含一个名为class =" b"的div。 ,其中包含另一个名为class =" c"的div,然后是我的输入。

我尝试使用

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

但我无法使用.trigger ......

谢谢!

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

基于你说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结构/代码。

答案 2 :(得分:0)

我认为你正在混合纯javascript和jQuery。

span with和id =" a",

#a

包含一个名为class =" b"

.b

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

的div

.c

,然后我的输入

.t-input

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

这将获得带有类的所有对象.t-input INSIDE .c INSIDE .b INSIDE id为#a

的元素

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

答案 3 :(得分:0)

@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);
        }
    }