Как «сузить» обмен для конкретного идентификатора? - PullRequest
0 голосов
/ 18 августа 2011

Я нашел эту треску в jquery web

$("select").change(function () {
      var str = "";
      $("select option:selected").each(function () {
            str += $(this).text() + " ";
          });
      $("div").text(str);
    })
    .change();

Я могу использовать ее по своему желанию, но хочу, чтобы эта функция была запущена только для #my_id.Я пытался вставить #my_id после того, как оба выбора, но затем функция ничего не делает.

Хотя я мог связать эту функцию, чтобы выбрать только с определенным идентификатором.

Ответы [ 5 ]

1 голос
/ 18 августа 2011

Может быть, это:

$("select#my_id").change(function() {
    var selOpts = jQuery.map($(":selected", $(this)), function(opt, index) {
        return $(opt).text();
    });
    $("div").text(selOpts.join(" "));
}).change();
1 голос
/ 18 августа 2011

Это прекрасно работает для select#my_id:

http://jsfiddle.net/ambiguous/wAU5w/

Вы использовали select #my_id (обратите внимание на пробел) моя ошибка?

Селектор select#my_id соответствует элементу <select id="my_id">, select #my_id соответствует чему-либо с id="my_id", который является потомком <select>.

1 голос
/ 18 августа 2011

Это будет работать только для элементов

$("select#my_id").change...

также убедитесь, что он завернут в

$(document).ready(function(){

});

Чтобы убедиться, что DOM готов

1 голос
/ 18 августа 2011

Если ваш select помечен my_id, чем просто поменять

select

на

#my_id

вместа, где это происходит в сценарии.

1 голос
/ 18 августа 2011

как в?

$("#my_id").change(function () {
  var str = "";
  $("#my_id :selected").each(function () {
        str += $(this).text() + " ";
      });
  $("div").text(str);
})
.change();
...