我一直很难找到合适的选择器而且我刚刚通过.parent().parent().siblings()
让它工作了,但是我知道必须有一个更好的方法来获得它而不用如此链接它
动态添加div,这是我发现选择它的唯一可靠方法:
var current = $(".filename:contains('" + file.name + "')").parent().parent().siblings();
current.find("input[name=title]").val(obj.file_name);
这是jsFiddle链接:http://jsfiddle.net/Msnf9/8/
这是HTML:
<div id="uploadifive-fileupload-queue" class="uploadifive-queue">
<div class="uploadifive-queue-item" id="uploadifive-fileupload-file-0">
<div class="span12 well">
<div class="row-fluid">
<div class="alert">
<div class="filename">file-name-1.jpg</div>
<div class="fileinfo"> - Completed</div>
</div>
<div class="progress">
<div class="bar"></div>
</div>
</div>
<div class="row-fluid inputs">
<div class="span3">
<ul class="thumbnails">
<li class="span12">
<a href="#" class="thumbnail">
<img src="http://placehold.it/260x180" alt="">
</a>
</li>
</ul>
</div>
<div class="span9">
<form class="form-horizontal">
<fieldset>
<div class="control-group">
<label class="control-label" for="file-name">File Name</label>
<div class="controls">
<span class="input-xlarge uneditable-input file-name" /></span>
</div>
</div>
<div class="control-group">
<label class="control-label" for="file-dimensions">File Dimensions</label>
<div class="controls">
<span class="input-xlarge uneditable-input file-dimensions" /></span>
</div>
</div>
<div class="control-group">
<label class="control-label" for="file-url">File URL</label>
<div class="controls">
<span class="input-xlarge uneditable-input file-url" /></span>
</div>
</div>
<div class="control-group">
<label class="control-label" for="alt-text">Alt Text</label>
<div class="controls">
<input type="text" class="input-xlarge" placeholder="Alt text" name="alt-text" id="alt-text" />
</div>
</div>
<input type="hidden" name="image_id" />
<div class="form-actions">
<button id="save" type="button" class="btn btn-primary"><i class="icon-ok icon-white"></i> Save</button>
<button id="delete" type="button" class="btn btn-inverse"><i class="icon-trash icon-white"></i> Delete</button>
</fieldset>
</form>
</div>
</div>
</div>
</div>
</div>
答案 0 :(得分:6)
您可以使用closest()
方法:
获取与选择器匹配的第一个元素,从当前元素开始并逐步向上遍历DOM树。
var current = $(".filename:contains('" + file.name + "')").closest('.row-fluid').siblings();
答案 1 :(得分:2)
使用nearest()方法,它为您提供DOM中元素的最接近的祖先。因为您有一个类row-fluid
,其中包含用于到达所需父级的所需父级。
<强> Live Demo 强>
var current = $(".filename:contains('file-name-1.jpg')").closest('.row-fluid').siblings();
答案 2 :(得分:0)
我喜欢最亲近的孩子。
var current = $(".filename:contains('" + file.name + "')").closest('.row-fluid').siblings()