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

时间:2012-10-17 20:10:25

标签: jquery jquery-selectors

  

可能重复:
  If element contains certain text

我有(已更新) 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>

我如何(通过jquery)获取包含文本&#34; Regular Cheese&#34;?的div中的输入类型?

我知道我可以获得这样的所有复选框:

$("input.no_submit:checkbox")

我明白如果我想影响项目的父div,我可以这样做:

$("input.no_submit:checkbox").parent("div").removeClass("checkBoxSelected");

我可以得到这样的实际文字:

​var myText = $("div").text();

但是我无法弄清楚如何组合它们以便我可以设置一个var指向嵌套div中的实际输入元素,嵌套div本身位于无类div中,其文本是特定字符串。

3 个答案:

答案 0 :(得分:1)

或在此处进行不同的演示::) http://jsfiddle.net/NBGBP/

希望它符合需要!

代码

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

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

    });
});​

答案 1 :(得分:1)

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

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

http://jsfiddle.net/ZeSdV/1/

答案 2 :(得分:0)

试试这个

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

参考:

包含 - http://api.jquery.com/contains-selector/

演示:     http://jsfiddle.net/Fs9tK/