jQuery .val () путаница выбора - PullRequest
0 голосов
/ 17 мая 2010

Я как бы загнал себя в угол и надеялся, что будет "легкий" выход. Я пытаюсь перебрать ряд вещей на своей странице и создать пару ключ: значение. Вот моя структура:

<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 есть много элементов select.

Вот моя функция 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 + '·';
            });
        });
    }

В строке с полем предупреждения и текстом «ЗДЕСЬ ПРОБЛЕМА» я пытаюсь получить выбранное значение «текущего» выбранного элемента ввода, но идентификатор этого элемента не уникален (Я думал, что это будет, но я облажался). Есть ли хороший способ, внутри «каждого» типа оператора jQuery, использовать «this» для получения точного элемента select, который я действительно ищу, даже если у него нет уникального идентификатора?

Ответы [ 3 ]

3 голосов
/ 17 мая 2010

Допустимые идентификаторы HTML-элементов должны быть уникальными . Если ваш документ содержит повторяющиеся идентификаторы, все ставки отключены.

Если вы действительно не можете правильно генерировать уникальные идентификаторы, вместо этого начните использовать классы.

1 голос
/ 17 мая 2010

Итак, вы просто хотите найти значение выбора внутри каждого элемента?

var myOptions = [];

$('.divMapTab').each(function()
{
    $(this).children('select').each(function()
    {
        myOptions.push(this.id, $(this).val());
    });
});

myOptions тогда будет содержать пару ключ-значение от каждого идентификатора выбора до его значения.

1 голос
/ 17 мая 2010

Я полагаю, что вы можете создать ссылку JQuery на объект, используя $(this).Это то, что вы после?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...