Jquery检查类中是否存在多个元素之一

时间:2012-01-23 16:07:49

标签: jquery class input exists

如何检查许多li个元素中是否有一个类,如果有,请调用函数?

嵌套<div class="selectbox"/><input type="hidden"/>列表中有多个<ul />。我需要检查每个.selectbox ul内是否是许多具有关联li a类的.selected元素之一。如果是这样,请将其值传递给<input type="hidden"/>值属性。

这是一段代码:

<div id="selectbox1" class="selectbox">
    <input type="hidden" name="selectbox1" />
    <ul>
        <li><a href="#" name="value01">Option 01</a></li>
        <li><a href="#" name="value02">Option 02</a></li>
        <li><a href="#" name="value03" class="selected">Option 03</a></li>
        <li><a href="#" name="value04">Option 04</a></li>
        <li><a href="#" name="value05">Option 05</a></li>
    </ul>
</div>

谢谢大家,我选择的响应时间最短。

4 个答案:

答案 0 :(得分:3)

这应该这样做:

$('.selectbox').each(function(){
   var $selected = $('a.selected',$(this));
    if($selected.length){
         $('input',$(this)).val($selected.text()); 
    }
});

实例(隐藏更改为文字以供演示):http://jsfiddle.net/YL4AB/
实例2(显示多个.selectbox div):http://jsfiddle.net/YL4AB/1/

答案 1 :(得分:1)

我是通过获取“selectbox”input下的所有div元素,然后找到所选a(如果有)来实现的。 E.g:

$(".selectbox > input").each(function() {
    this.value = $(this).closest(".selectbox").find("a.selected").first().attr("name") || "";
});

Live example,我将隐藏的输入作为文本输入,以便您可以看到它。单击按钮以触发上述代码。 (单击链接会更改选择哪一个,但不更新输入 - 这样您就可以看到单击按钮时会发生什么。)我还使用CSS突出显示所选的一个。

答案 2 :(得分:0)

$('input[name="selectbox1"]').val($("#selectbox1 li > a.selected").text());

答案 3 :(得分:0)

这是一些代码,解释它的作用:

// Grab the selectbox elements
$('.selectbox').each(function() {
    // Loop through the LI elements which have Anchor elements with the '.selected' class
    $(this).find('li a.selected').each(function() {
        // Execute arbitrary function
        alert($(this).text());
    });
});

这很简单,适合大多数人所说的。希望文档能有所帮助。