如何获得除一个之外的所有子元素

时间:2013-02-01 14:15:40

标签: jquery

我有以下内容:

<input type='checkbox' id='inputCheckbox'/><strong>sdfsf</strong><p>dfsfsdsd</p>

从上面的元素中,我只需要在选中复选框时获取这些元素并省略输入元素:

<strong>sdfsf</strong><p>dfsfsdsd</p>

我的尝试:

$("#testPatternButton").on("click", function()
{
    $("input:checked").each(function()
    {
        alert($(this).parent().children().not("input").html()); // only the strong text shows up
    });
});

4 个答案:

答案 0 :(得分:1)

这样做 - 它使用a common trick获取输入的.html(),然后使用.replace从父.html()中删除该字符串。

$('input').on('click', function () {
    inputhtml = $(this).clone().wrap('<div>').parent().html();
    allhtml = $(this).parent().html();
    str = allhtml.replace(inputhtml, '');
    alert(str);
});

http://jsfiddle.net/jnabj/

但是,如果你真的想要这些元素的jQuery对象而不是HTML字符串,那就更容易了:

$('input').on('click',function() {
    $var = $(this).siblings();
});

答案 1 :(得分:1)

使用each()并添加html()内容。

$("#testPatternButton").on("click", function() {
    $("input:checked").each(function() {
        var output = '';
        $(this).parent().children().not("input").each(function() {
            output = output + $(this).html();
        });
        alert(output);
    });
});

答案 2 :(得分:1)

试试这个。

$("#inputCheckbox").click(function(){
    var el = this;
    if (el.checked) {
        console.log(
            $(el).nextAll()
        );
    }
});

答案 3 :(得分:0)

这有效

DEMO

$("#testPatternButton").on("click", function() {
    $("input:checked").each(function() {
      $("#out").html($(this).parent().contents().not('input')); 
    });
});