2

我有以下内容:

<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

4 回答 4

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);
    });
});
于 2013-02-01T14:23:14.617 回答
1

这将做到这一点——它使用一个常见的技巧来获取.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();
});
于 2013-02-01T14:19:28.817 回答
1

尝试这个。

$("#inputCheckbox").click(function(){
    var el = this;
    if (el.checked) {
        console.log(
            $(el).nextAll()
        );
    }
});
于 2013-02-01T14:31:50.370 回答
0

这有效

演示

$("#testPatternButton").on("click", function() {
    $("input:checked").each(function() {
      $("#out").html($(this).parent().contents().not('input')); 
    });
});
于 2013-02-01T14:30:48.030 回答