Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Jquery如何在当前选择的输入元素之后选择所有输入文本元素?_Javascript_Jquery_Jquery Selectors - Fatal编程技术网

Javascript 使用Jquery如何在当前选择的输入元素之后选择所有输入文本元素?

Javascript 使用Jquery如何在当前选择的输入元素之后选择所有输入文本元素?,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我一直在尝试使用nextAll()和sibbines(),但这些函数从不返回任何内容,我只能假设它与嵌套在其他html元素(表单元格)中的表单输入有关 因此,我希望获得当前选定元素之后的所有同级元素 更新: 因此,这将在我的具体情况下工作-见下面的答案 $(this.parent().parent().nextAll().find('input')… 但这是我为使我的页面正常工作所做的 $("input.tbDate").each( function(index) { if (endDa

我一直在尝试使用nextAll()和sibbines(),但这些函数从不返回任何内容,我只能假设它与嵌套在其他html元素(表单元格)中的表单输入有关

因此,我希望获得当前选定元素之后的所有同级元素

更新: 因此,这将在我的具体情况下工作-见下面的答案
$(this.parent().parent().nextAll().find('input')…

但这是我为使我的页面正常工作所做的

$("input.tbDate").each( function(index) {
    if (endDate != null) 
    {
        if ( $(this).attr("id").indexOf("StartDate") != -1 )
        {
            endDate.setDate( endDate.getDate() + 1);
            var dayOfTheWeek = endDate.getDay();
            if (dayOfTheWeek==6)
            {
                endDate.setDate(endDate.getDate()+2);
            }
            else if (dayOfTheWeek==0)
            {
                endDate.setDate(endDate.getDate()+1);
            } 
        }
        endDateString = endDate.getMonth() + 1 + "/" +  endDate.getDate() + "/" +  endDate.getFullYear();
        $(this).val( endDateString );
    }
    // Found input text box and grabbing
    if ( $(this).attr("id") ==  $(obj).attr("id"))
    {
        endDate = new Date( $(obj).val() );
    } 
});
有没有人会像我那样做?一种选择元素的方法是否比另一种更可取(更快/更好)

同级()查找元素上下同一级别的所有元素。下一步查找元素下的所有元素,但再次查找相同级别的元素

我认为您的标记不支持使用这些方法来查找下一个元素。您可能需要使用其他方法或更改标记以支持这些方法。

兄弟()查找元素上下同一级别的所有元素。下一步查找元素下的所有元素,但再次查找相同级别的元素


我认为您的标记不支持使用这些方法来查找下一个元素。您可能需要使用其他东西或更改标记来支持这些方法。

如果输入在
包装器中,则需要首先获取父级
,然后获取所有下一个同级
,并遍历到它们:

$('input.tbDate').parent().nextAll().find('input').css('border','3px solid red');
尝试在您寻找的元素周围放置一个边框,您就会知道JQuery是否正在确认它们

测试用例HTML:

<table>
    <tr>
        <td>
            <input type="text" class="test" />
            <input type="text" class="test" />
            <input type="text" class="test" />
        </td>
        <td>
            <input type="text" class="test" />
            <input type="text" class="test" />
            <input type="text" class="test" />
        </td>
        <td>
            <input type="text" class="test" />
            <input type="text" class="test" />
            <input type="text" class="test" />
        </td>
    </tr>
</table>
测试用例JQuery:

$(function(){
    $('.test').click(function(){
        $('.test').removeClass('red');
        $(this).nextAll().addClass('red');
        $(this).parent().nextAll().find('input').addClass('red');
    }); 
});

测试用例演示:

如果输入在
包装器中,您需要首先抓取父级
,然后抓取所有下一个同级
,并遍历它们:

$('input.tbDate').parent().nextAll().find('input').css('border','3px solid red');
尝试在您寻找的元素周围放置一个边框,您就会知道JQuery是否正在确认它们

测试用例HTML:

<table>
    <tr>
        <td>
            <input type="text" class="test" />
            <input type="text" class="test" />
            <input type="text" class="test" />
        </td>
        <td>
            <input type="text" class="test" />
            <input type="text" class="test" />
            <input type="text" class="test" />
        </td>
        <td>
            <input type="text" class="test" />
            <input type="text" class="test" />
            <input type="text" class="test" />
        </td>
    </tr>
</table>
测试用例JQuery:

$(function(){
    $('.test').click(function(){
        $('.test').removeClass('red');
        $(this).nextAll().addClass('red');
        $(this).parent().nextAll().find('input').addClass('red');
    }); 
});

测试用例演示:

您也可以发布标记吗?您也可以发布标记吗?我希望其他人能给出答案,您是对的,我实现了一种不同的方法来解决我的问题。我本以为有一种很好的方法可以在某个元素之后获得所有元素,无论其级别如何。遗憾的是,你和我只能给出一个答案!我希望其他人能给出一个答案,你是对的,我用了一种不同的方法来解决我的问题。我本以为有一种很好的方法可以在某个元素之后获得所有元素,无论其级别如何。遗憾的是,你和我只能给出一个答案!我试过这个只是为了好玩,但没用。你确定这一点吗,你能给我举一个有效的例子吗?我更新了你的jsbin代码以反映我的情况。我知道你的解决方案现在会起作用。我需要使用$(this.parent().parent().nextAll().find('input')……与您的答案相比,您对我对这个问题的更新有什么看法?我不太喜欢parent().parent(),因为如果我以某种方式更改标记,我会打破选择,您可以始终使用
parents('.applicative class name')
遍历DOM并到达所需的父对象。您也可以使用
最接近('.applicative class name')
,但后者从当前DOM节点开始,前者从第一个父节点开始。我尝试了这个方法只是为了见鬼,但没有成功。你确定这一点吗,你能给我举一个有效的例子吗?我更新了你的jsbin代码以反映我的情况。我知道你的解决方案现在会起作用。我需要使用$(this.parent().parent().nextAll().find('input')……与您的答案相比,您对我对这个问题的更新有什么看法?我不太喜欢parent().parent(),因为如果我以某种方式更改标记,我会打破选择,您可以始终使用
parents('.applicative class name')
遍历DOM并到达所需的父对象。您也可以使用
最近('.applicative class name')
,但后者从当前DOM节点开始,前者从第一个父节点开始。