我使用以下代码:
$.each($('.friendName'), function(){
if($(this).val() != ''){
var idName = $(this).attr('id');
var name = $(this).val();
var email = $('#' + idName + ' ~ input').first().val();
alert(email);
}
});
此代码应使用friendName
类(3个输入框)遍历每个元素。
非空的,我希望它找到相关的friendEmail输入框。例如:
friendName1 - friendEmail1
friendName2 - friendEmail2
friendName3 - friendEmail3
这应仅包含包含详细信息的项目的结果,如果仅填写friendName1
和friendEmail1
,则不计算其余项目。
出于某种原因,我无法得到它来获取friendEmail
输入的值,我猜是因为它不是兄弟。
我们非常感谢您的帮助,如果您可以推进我的代码,以便检查每个friendName
和friendEmail
是否包含值,那么将它们返回为var name
并且var email
,那太好了。
<div>
<label for="friendName1">Friend's Name</label>
<input type="text" id="friendName1" name="friendName1" class="friendName" value="" />
</div>
<div>
<label for="friendEmail1">Friend's Email</label>
<input type="text" id="friendEmail1" name="friendEmail1" value="" />
</div>
<div>
<label for="friendName2">Friend's Name</label>
<input type="text" id="friendName2" name="friendName2" class="friendName" value="" />
</div>
<div>
<label for="friendEmail2">Friend's Email</label>
<input type="text" id="friendEmail2" name="friendEmail2" class="friendEmail" value="" />
</div>
<div>
<label for="friendName3">Friend's Name</label>
<input type="text" id="friendName3" name="friendName3" class="friendName" value="" />
</div>
<div>
<label for="friendEmail3">Friend's Email</label>
<input type="text" id="friendEmail3" name="friendEmail3" class="friendEmail" value="" />
</div>
答案 0 :(得分:0)
我使用方法http://jsfiddle.net/a2kHt/2/
创建了一个jsFiddle$(function(){
$(".friendName[value!='']").each(function(){
var idEmail = 'friendEmail' + $(this).attr("id").replace('friendName','');
if($("#"+idEmail+"[value!='']").length > 0){
alert("Name: " + $(this).val() + " - Email: " + $("#"+idEmail).val());
}
})
});
答案 1 :(得分:0)
仅供参考,
$( '.friendName' ).each( function(){} );
也有效。 ;)
由于您使用类&#39; .friendName&#39;循环遍历元素,您可以尝试这样:
$( '.friendName' ).each( function( index, elem ) {
if($(this).val() != ''){
var idName = $(this).attr('id');
var name = $(this).val();
var email = $('#friendMail' + index).first().val();
console.log( email );
}
} );
索引是数组中的索引,或者在这种情况下是计数器变量,如果你想要的话。 Elem是元素,不包含在jQuery中。
顺便说一下,
console.log( email );
// instead of alert( email );
这为您提供了更多信息,甚至可以与FireBug或Chrome和IE9中内置的开发人员工具进行交互。
EDITH:
我现在也用jsFiddle创建了一个尝试。 This是我提出来的。有用。我的坏处是,该指数必须增加1。