Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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
如何通过jquery基于div中的字符串获取输入_Jquery_Jquery Selectors - Fatal编程技术网

如何通过jquery基于div中的字符串获取输入

如何通过jquery基于div中的字符串获取输入,jquery,jquery-selectors,Jquery,Jquery Selectors,可能重复: 我有这个(更新)html: <div> <div class="checkBox"> <input type="checkbox" name="toppings" class="NS" value="n" /> </div> No Sauce </div> <div> <div class="checkBox"&g

可能重复:

我有这个(更新)html:

<div>
    <div class="checkBox">
        <input type="checkbox" name="toppings" class="NS" value="n"  />
    </div>
    No Sauce                    
</div>

<div>
    <div class="checkBox">
        <input type="checkbox" name="toppings" class="NC" value="x"  />
    </div>
    No Cheese                    
</div>

<div>
    <div class="checkBox checkBoxSelected">
        <input type="checkbox" name="toppings" class="no_submit" checked="checked" value=""  />
    </div>
    Regular Cheese                    
</div>

<div>
    <div class="checkBox">
        <input type="checkbox" name="toppings" class="no_submit" value=""  />
    </div>
    Regular Sauce                    
</div>
我明白,如果我想影响项目的父div,我可以这样做:

$("input.no_submit:checkbox").parent("div").removeClass("checkBoxSelected");
我可以得到如下实际文本:

$("input.no_submit:checkbox")
​var myText = $("div").text();
但我不知道如何组合它们,以便设置一个变量,指向嵌套div中的实际输入元素,而嵌套div本身位于文本为特定字符串的无类div中。

试试这个

$('div:contains("Regular Cheese") input.no_submit') 
参考:

包含-

演示:

或此处的不同演示:
:)

希望它符合需要

代码

$(document).ready(function() {
    $('.no_submit').click(function() {

        if ($(this).is(':checked')){
            alert('Div text ==> ' + $(this).parents('div').text());   
        }

    });
});​

您可以使用:contains()进行筛选以查找“常规奶酪”文本。将其拆分为筛选器而不是执行div:contains将是一个更快的选择器。然后,您希望找到父div中的输入并打印出它的类型

$("div").filter(":contains('Regular Cheese')")
    .find("input.no_submit").prop("type");

我最喜欢这个答案-
:contains()
太慢了,抓取页面中的每个
div
,并根据节点类型过滤器检查特定文本也是如此+1
:)
@ahren
:)
陛下是一位传奇人物,也是一位好人!每次我们见面时,都会有人喝咖啡!谢谢你,兄弟!为注意到细节而干杯!这一个的问题是,复选框的类别并不总是no_submit。@艾美奖在这种情况下,请这样做
:)
演示应该有帮助-这不是一个完全重复的;问题不仅仅是在div中查找文本,我已经表示可以这样做。问题是根据父div中的文本在嵌套div中获取输入元素。好吧,这是可行的。我把你的提琴分叉,并用稍微多一些的代码更新了,它发现并影响所有的输入,而不仅仅是包含常规奶酪文本的div中的输入。很抱歉,当我意识到这一点时,我更新了代码片段,但没有更新提琴。