我有点把自己写进一个角落,并希望有一个“简单”的出路。我正在尝试遍历我的页面上的一系列事情,并构建一个键:值对。这是我的结构:
<div class="divMapTab" id="divMapTab34">
<div class="divFieldMap">
<select class="selSrc" id="selTargetnamex"><options....></select>
</div>
</div>
<div class="divMapTab" id="divMapTab87">
<div class="divFieldMap">
<select class="selSrc" id="selTargetnamex"><options....></select>
</div>
</div>
这比这更复杂,每个divFieldMap div中都有很多选择元素。
这是我正在构建我的字符串的JS函数:
function Save() {
var sSaveString = '';
$('.divMapTab').each(function() {
var thisId = this.id;
$('.selSrc', "#" + thisId).each(function() {
var thisSubId = this.id;
//alert(thisSubId); <-- HERE IS THE PROBLEM
var sTargetCol = thisSubId.replace('selTarget', '');
var sValue = this.val();
sSaveString += sTargetCol + '¸' + sValue + '·';
});
});
}
在包含警告框和文本“这里是问题”的行上,我正在尝试获取“当前”选择输入元素的选定值,但该元素的id不是唯一的(我以为会是,但我搞砸了)。在“每种”类型的jQuery语句中,是否有一种好方法可以使用“this”来获取我真正想要的精确select元素,即使它没有唯一ID?
答案 0 :(得分:3)
有效的HTML元素ID 必须是唯一的。如果您的文档包含重复的ID,则所有投注均已关闭。
如果您确实无法正确生成唯一ID,请改为开始使用类。
答案 1 :(得分:1)
我相信您可以使用$(this)
创建对象的JQuery引用。这就是你追求的目标吗?
答案 2 :(得分:1)
那么,您只想在每个div中找到选择的值?
var myOptions = [];
$('.divMapTab').each(function()
{
$(this).children('select').each(function()
{
myOptions.push(this.id, $(this).val());
});
});
然后,myOptions将包含从每个选择ID到其值的键值对。