如何选择父母的兄弟姐妹

Roy*_*Roy 7 jquery

HTML:

<div class="parent"> 
  <input></input> 
  <button></button> 
</div> 
<div class="siblings"> 
  <p class="children"></p> 
</div> 
Run Code Online (Sandbox Code Playgroud)

jQuery的:

$('button').click(function(){ 
  if($(this).siblings('input') != ""){ 
    var addTo = $(this).siblings('input').val(); 
    $(this).parent('parent').siblings('siblings').children('children').html(addTo); 
  } 
}); 
Run Code Online (Sandbox Code Playgroud)

为什么不起作用?我想从输入中获取值,并替换内容p.

arn*_*rhs 7

您正在引用类的选择器,就好像它们是元素一样(它们缺少点:):.所以您可能希望将其更改为:

$(this).parent('.parent').siblings('.siblings').children('.children').html(addTo); 
Run Code Online (Sandbox Code Playgroud)

但是那里有很多其他奇怪的东西,你最终也想要修复它们.就像其他人指出的那样,你的if语句(if($(this).siblings('input') != ""){)总会评估为true,我猜你在试图看它的值是否为空?

这是一个完整的重写fwiw:

$('button').click(function(){
  var input = $(this).siblings('input'),
      val = input.val();
  if(val != ""){ 
    $(this).parent('.parent').find('.children').html(val); 
  }
}); 
Run Code Online (Sandbox Code Playgroud)


Sab*_*kar 4

问题出在以下几行:

代替:

$(this).parent('parent').siblings('siblings').children('children').html(addTo);
Run Code Online (Sandbox Code Playgroud)

尝试这个:

$(this).parent().siblings('.siblings').find('.children').html(addTo);
Run Code Online (Sandbox Code Playgroud)

代替

$(this).siblings('input') != ""
Run Code Online (Sandbox Code Playgroud)

尝试这个:

$(this).siblings('input').val() != ""
Run Code Online (Sandbox Code Playgroud)