请看下面的代码段。我有以下代码结构。
使用`parent()'
的工作代码段
Host $name
HostName $hostname
User $username
IdentityFile $pathtoFile
private String saveToInternalStorage(Bitmap bitmapImage){
ContextWrapper cw = new ContextWrapper(getApplicationContext());
// path to /data/data/yourapp/app_data/imageDir
File directory = cw.getDir("imageDir", Context.MODE_PRIVATE);
// Create imageDir
File mypath=new File(directory,"profile.jpg");
FileOutputStream fos = null;
try {
fos = new FileOutputStream(mypath);
// Use the compress method on the BitMap object to write image to the OutputStream
bitmapImage.compress(Bitmap.CompressFormat.PNG, 100, fos);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return directory.getAbsolutePath();
}
function ModifyValue(name, current){
var qty = $(current).parent().find('input');
if ($(current).hasClass('increment')) {
qty.val(parseInt(qty.val())+1);
} else {
qty.val(parseInt(qty.val())-1);
}
}
当我使用像input {
width: 60px;height: 23px;padding-left: 20px;
}
这样的<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="input-group quantity-div">
<button type="button" class="pls altera" onclick="ModifyValue('testname', this)"> - </button>
<input type="text" name="quantity" value="1" class="inputbox">
<button type="button" class="pls altera increment" onclick="ModifyValue('newname', this)"> + </button>
</div>
选择器时,上面的代码段工作正常。但是当我尝试使用parent()
之类的$(current).parent().find('input')
时,它无效。
使用closest()
$(current).closest('input')
closest()
function ModifyValue(name, current){
var qty = $(current).closest('input');
if ($(current).hasClass('increment')) {
qty.val(parseInt(qty.val())+1);
} else {
qty.val(parseInt(qty.val())-1);
}
}
最接近的是不会找到像我上面代码那样最近的元素或者我做错了什么?帮助我理解这一点。
答案 0 :(得分:2)
.closest()
搜索元素的父母 AND ,而不是兄弟姐妹。
如果您想在同一级别选择input
,可以使用.siblings()
:
$(current).siblings('input')
function ModifyValue(name, current) {
var qty = $(current).siblings('input');
if ($(current).hasClass('increment')) {
qty.val(parseInt(qty.val()) + 1);
} else {
qty.val(parseInt(qty.val()) - 1);
}
}
&#13;
input {
width: 60px;
height: 23px;
padding-left: 20px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="input-group quantity-div">
<button type="button" class="pls altera" onclick="ModifyValue('testname',this)"> - </button>
<input type="text" name="quantity" value="1" class="inputbox">
<button type="button" class="pls altera increment" onclick="ModifyValue('newname',this)"> + </button>
</div>
&#13;