2014-02-23 2 views
0

이 코드는 jQuery 선택 가능 UI (https://jqueryui.com/selectable/#serialize)에서 가져온 것입니다. 인덱스 대신 선택된 text 값을 추가하려면 어떻게 수정해야합니까? jQuery UI Selectable : 선택한 항목의 텍스트를 가져옵니다.

나는 실패 여러 가지 방법을 시도 :

  1. var index = $("#selectable li").text(); # 이것이 첫 번째 항목을 추가하고에서


$(function() { 
    $("#selectable").selectable({ 
     stop: function() { 
      var result = $("#select-result").empty(); 
      $(".ui-selected", this).each(function() { 
       var index = $("#selectable li").index(this); 
       result.append(" #" + (index + 1)); 
      }); 
     } 
    }); 
}); 


    <ol id="selectable"> 
     <li class="ui-widget-content">Item 1</li> 
     <li class="ui-widget-content">Item 2</li> 
     <li class="ui-widget-content">Item 3</li> 
     <li class="ui-widget-content">Item 4</li> 
     <li class="ui-widget-content">Item 5</li> 
     <li class="ui-widget-content">Item 6</li> 
    </ol> 

답변

1

을 중지 모든 것을에게

  • var index = $("#selectable li").html(); #을 추가합니다: 첫 번째의

    얻기 HTML 내용 :

    그들의 후손 documentation for .html()에서

    을 포함하여, 일치 요소의 세트에 각 요소의 결합 된 텍스트 내용을 가져 오기 일치하는 집합의 요소


    이 작업을 시도 할 수 :

    $("#selectable").selectable({ 
        stop: function() { 
         var text = $(this).children(".ui-selected").map(function() { 
          return $(this).text(); 
         }).get().join('; '); 
         $("#select-result").text(text); 
        } 
    }); 
    

    jsfiddle

    이 선택한 각 항목의 텍스트를 얻기 위해 .map() function를 사용합니다. DOM 요소 대신 실제로 문자열 객체가 들어있는 jQuery 객체를 반환하므로 .get() function이 문자열 배열을 가져 오는 데 사용됩니다. 그런 다음 array's .join() function은 문자열을 결합하는 데 사용됩니다.

  • +0

    예 예를 변경했는데 어떻게 작동하는지 설명 할 수 있습니까? 왜 그냥'.text()'를 호출 할 수 없었을까요 (저는 jQuery를 배우고 있습니다) 그래서 문제를 푸는 당신의 생각 과정을 환영합니다. – fyz

    +0

    @feed_me_code -이 [jsfiddle] (http://jsfiddle.net/BF9Gx/1/)에서 보여지는 것처럼 선택한 모든 항목의 결합 된 텍스트를 얻기 위해'.text() '를 호출 할 수 있습니다. 구분 기호가 없습니다. 여러 요소에서 호출 될 때'.text()'함수가 어떻게 작동하는지 알려준다. 배열에서 텍스트를 가져 오면 유연성이 향상됩니다. –

    1
    $("#selectable")selectable({ 
        stop: function() { 
         var text += $(this)children(".ui-selected").map(function() { 
          return $(this).text(); 
         }).get().join('; '); 
         $("#select-result").text(text); 
        } 
    }); 
    
    관련 문제