【问题标题】:Jquery selector finding input inside fieldsetJquery选择器在字段集中查找输入
【发布时间】:2012-03-08 10:01:44
【问题描述】:

我喜欢查找字段集中的输入框的值,如下所示

fieldset> div >div> input[with class name 'inputclassname']

我知道字段集的 id 并尝试使用其类名查找输入的值,但我无法 .value 未定义。

我试过这样

$('#ID of fieldset').find($('.inputclassname')).val();

它总是以未定义的形式返回。有什么建议吗?

【问题讨论】:

    标签: jquery jquery-selectors


    【解决方案1】:
    <fieldset id="fs">
        <div>
            <div> 
                <input class="someclass" value="hey" />
            </div>
        </div>
    </fieldset>
    <script type="text/javascript" charset="utf-8">
        alert($("#fs input.someclass").val())
    </script>
    

    【讨论】:

    • Find 实际上是这种情况下的首选方式。这样,直接 id 选择器的性能优势就会被抵消,因为您正在尝试进行后代选择。最好先按 ID 选择,然后像 @Mohammed ElSayed 已经显示的那样进行查找
    【解决方案2】:

    试试这个(发现需要另一个选择器,而不是 jquery 对象):

    $('#ID of fieldset').find('.inputclassname').each(function(){
        var value = jQuery(this).val();
    });
    

    【讨论】:

    • 请注意,如果您只想要第一个匹配项的值(或者确信只有一个匹配项),则不需要 .each()
    【解决方案3】:

    这应该可以解决您的问题

    $('#ID of fieldset').find('.inputclassname').val();
    

    【讨论】:

      【解决方案4】:

      【讨论】:

        【解决方案5】:

        试试:

        $('#IDoffieldset input[class="inputclassname"]').val();
        

        $('#IDoffieldset .inputclassname').val();
        

        不需要find()。这使用 descendantattribute equals 选择器

        来自 cmets 的更新:但正如您在这里看到的 jsperf tests 使用 find() 更快!所以你最好的方法确实是:

         $('#IDoffieldset').find('input.inputclassname').val();
        

        【讨论】:

        • Find 实际上是这种情况下的首选方式。这样,直接 id 选择器的性能优势就会被抵消,因为您正在尝试进行后代选择。最好先按 ID 选择,然后像 @silly 已经显示的那样进行查找
        • 我没有投反对票,但我之前从未见过有人使用input[class="inputclassname"]。当您可以说input.inputclassname 时,您为什么要这样做? (回答我自己的问题,也许当且仅当您想确定该元素没有指定其他类?)
        • @labroo 感谢您指出您确实是正确的 (jsperf.com/find-vs-descendant-selector/14)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-06-18
        • 1970-01-01
        • 2013-07-18
        • 2012-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多