我有以下内容:
<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
});
});
答案 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);
});
但是,如果你真的想要这些元素的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)
这有效
$("#testPatternButton").on("click", function() {
$("input:checked").each(function() {
$("#out").html($(this).parent().contents().not('input'));
});
});