Как разделить выбранное значение из выпадающего списка и использовать его в качестве селектора в jquery - PullRequest
0 голосов
/ 06 января 2012

Если мой заголовок кажется глупым, прости меня.Я новичок в jQuery и не знаю, как объяснить свою проблему, используя правильные термины jQuery.

Итак, я задал этот вопрос некоторое время назад и получил идеальный ответ.Теперь моя проблема в том, что значение в моем раскрывающемся списке не так просто, и из-за этого данное мне решение не получается.

Код, который мне дали, был $("select[id*='ComboBox'][value!=0]").length + offset;.В моем примере кода это нормально, потому что значения 0, 1, 2, 3. Но на самом деле значения такие, как default_price1, code1_price2, code2_price3 ... Так что в основном значения представляют собой сцепленные строки.Я знаю, как разбивать строки, но моя проблема сейчас в том, как мне интегрировать это с моим предыдущим кодом?

$("select[id*='ComboBox'][value.split('_')[0]!==default]").length + offset;, похоже, не работает.

Возможно ли это вообще?Еще раз спасибо.

Вот запрос jsfiddle: http://jsfiddle.net/annelagang/scxNp/20/

Ответы [ 3 ]

1 голос
/ 06 января 2012

Если для значения «0» работает следующее:

$("select[id*='ComboBox'][value!=0]").length + offset

Тогда для значений, начинающихся с «default», вы сможете сделать что-то вроде этого:

$("select[id*='ComboBox']").not("[value^='default']").length + offset

Где ^= означает «начинается с».

Но вы можете использовать .filter() метод , который позволит вам выполнять любые виды манипуляций со строками, которые вам нравятся, чтобы проверить, является ли каждый элементдолжно быть включено:

$("select[id*='ComboBox']").filter(function() {
   return /^default/.test($(this).val());
}).length + offset

/^default/ - это регулярное выражение, которое ищет "default" в начале строки.

1 голос
/ 06 января 2012

Не злоупотребляйте селекторами jQuery, лучше используйте метод фильтра .

$("select[id*='ComboBox']")
   .filter(function(){return this.value.replace(/_.*/,"") !== "default"}).length
   + offset;
0 голосов
/ 06 января 2012
$(function() {
    $("select[id*='ComboBox']").change(function() {
        var sum=0;
        $(this).find("option").each(function(){
          sum+=parseInt($(this).val().split("price")[1]);        
        });     
        $("#total").text(sum);
    });
});

Если пользователь выбирает любое значение из выпадающего списка. Сумма показывается (1 + 2 + 3 + 4) = 10

Вы можете использовать логику разделения строк по-своему. но это то, что вы хотели?

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