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.
您正在引用类的选择器,就好像它们是元素一样(它们缺少点:):.所以您可能希望将其更改为:
$(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)
问题出在以下几行:
代替:
$(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)