我有一个多值fieldset的表单,每个字段包装器和内部div设置id增加1个数字来区分id。如果复选框在单个字段集中的复选框表单项中被选中,我需要隐藏包装在该字段集中后面的表单项的div。我遇到的一个问题是,ID的名称在字符串中间包含一个唯一的值。例如:“#beginningofIDSting- X -endofStringName”。我无法更改ID或将类添加到包装。Jquery select表单项目的递增ID's
<div id="edit-field-gallery-images-0-ahah-wrapper">
<div id="edit-field-gallery-images-0-data-revise-wrapper" class="form-item">
<label class="option" for="edit-field-gallery-images-0-data-revise">
<input id="edit-field-gallery-images-0-data-revise"
class="form-checkbox revise-check"
type="checkbox" checked="checked"
value="1" name="field_gallery_images[0][data][revise]">
Revise This Description
</label>
</div>
<div id="edit-field-gallery-images-0-data-revisedby-wrapper" class="form-item">
//Stuff in Here
</div>
<div id="edit-field-gallery-images-0-data-revisedon-wrapper" class="form-item">
//Stuff in Here
</div>
</div>//End #edit-field-gallery-images-0-data-revisedby-wrapper
<div id="edit-field-gallery-images-1-ahah-wrapper">
<div id="edit-field-gallery-images-1-data-revise-wrapper" class="form-item">
<label class="option" for="edit-field-gallery-images-1-data-revise">
<input id="edit-field-gallery-images-1-data-revise"
class="form-checkbox revise-check"
type="checkbox" checked="checked"
value="0" name="field_gallery_images[1][data][revise]">
Revise This Description
</label>
</div>
//Stuff in Here
</div>
<div id="edit-field-gallery-images-1-data-revisedby-wrapper" class="form-item">
<div id="edit-field-gallery-images-1-data-revisedon-wrapper" class="form-item">
//Stuff in Here
</div>
</div>//End #edit-field-gallery-images-1-data-revisedby-wrapper
这里是我的jQuery
$("input[type='checkbox'][id$='-data-revise']:checked").each(function(){
$(this).next("[id$=-data-revisedby-wrapper]").hide();
$(this).find("[id$=-data-revisedon-wrapper]").hide();
});
我用jfriend00的和user625037的解决方案的comination。那就是:
$("div[id$=data-revisedby-wrapper]").hide();
$("div[id$=data-revisedon-wrapper]").hide();
$("input[id^=edit-field-gallery-images]:checked").each(function() {
var startPos = "edit-field-gallery-images-".length;
var endPos = this.id.indexOf("-", startPos);
var id = this.id.substring(startPos, endPos);
$("div[id$="+id+"-data-revisedby-wrapper]").show();
$("div[id$="+id+"-data-revisedon-wrapper]").show();
});
$(".revise-check").change(function() {
if(this.checked) {
$("#" + this.id + "by-wrapper").fadeIn();
$("#" + this.id + "on-wrapper").fadeIn();
}
else{
$("#" + this.id + "by-wrapper").fadeOut();
$("#" + this.id + "on-wrapper").fadeOut();
}
});
嗯,如果需要找出是否有一个复选框,在任何与增量命名约定的id的检查。除了递增数字之外,还有多个ID具有完全相同的名称。我不能只针对一个ID,因为我不知道ID的名称是由于递增值。 – landing
查看jQuery的^ =选择器...它只匹配开头只... http://api.jquery.com/category/selectors/ – ndp
我已经在我的jquery,但我似乎无法目标正确的div。 – landing