我不确定我的代码是否正确,但我试图对特定元素进行一些检查,但我的计数器不起作用 - 我的字段没有隐藏。
//get all fields, some could be text, text area, checkbox, radio...
$(".my-field").each(function(i) {
var wrapper = this;
//check if the text box has a vaule, this callback here is not working/ correct?
$(wrapper).find("input:text", function() {
if ($(this).val() != "" || $(this).val().length > 0) {
hidden++;
$(wrapper).find(".field-content").hide();
$(wrapper).addClass("hide");
} else {
visible = visible + 1;
}
});
});
下面的我的Html是1 字段(下面显示的一个div),它们都包含在带有其他字段的div中
<div data-field-type="Text" data-field-id="1" class="display-wrapper my-field">
<div class="field-header">
<span>name:
xyz</span> | <span>
text field</span>
</div>
<div class="field-content">
<div class="editor-label">
<p class="clear">
some description...</p>
</div>
<div class="editor-field">
<input type="text" value="iojhiojio" name="1" maxlength="100" id="field-1" class="field-bigtext">
</div>
<br>
</div>
<div style="display: none;" class="field-error-wrapper">
</div>
</div>
我的问题,这可能是jquery:
$(wrapper).find("input:text", function() {
.. some code
});
答案 0 :(得分:2)
你可能正在寻找.each()
,以便为每个元素做点什么。
$(wrapper).find("input:text").each(function() {
if ($(this).val() != "" || $(this).val().length > 0) {
hidden++;
$(wrapper).find(".field-content").hide();
$(wrapper).addClass("hide");
}
else {
visible++;
}
});
.find()
只做一件事:在你正在运行它的元素内找到与给定选择器/对象匹配的对象。
编辑:看过你的评论后,你说你只想对一个元素做点什么。因此,只需将.find()
中的内容存储在变量中,然后使用它进行处理。
var inputElem = $(wrapper).find('input:text');
if (inputElem.val() != "" || inputElem.val().length > 0) {
hidden++;
$(wrapper).find('.field-content').hide();
$(wrapper).addClass("hide");
}
else {
visible++;
}
答案 1 :(得分:0)
只需添加每个。
//get all fields, some could be text, text area, checkbox, radio...
$(".my-field").each(function (i) {
var wrapper = this;
//check if the text box has a vaule, this callback here is not working/ correct?
$(wrapper).find("input:text").each(function () {
if($(this).val() != "" || $(this).val().length > 0) {
hidden++;
$(wrapper).find(".field-content").hide();
$(wrapper).addClass("hide");
} else {
visible = visible + 1;
}
});
});