2012-06-19 3 views
0

프로젝트에서 jQuery와 JavaScript의 차이점을 비교하려고하지만 어떻게해야할지 모르므로 하나의 함수를 다시 작성하는 방법을 찾지 못하는 것 같습니다. jQuery 객체를 참조하십시오. AJAX 매개 변수로 전달할 문자열을 연결합니다. 여기에 자바 스크립트는 다음과 같습니다 jQuery JavaScript 함수와 동일

function getSelectValues(select) { 
    var values = ""; 
    var sep = ""; 
    for(var i = 0; i < select.length; i++) { 
    if (select.options[i].selected) { 
     values += sep + (select.options[i].value); 
     sep = ", "; 
    } 
    } 
    return values; 
} 

나는 $ (이)를 전달하여 아래의 jQuery 해당 될 줄 알았는데,하지만 난 그것을 얻이 수없는 것. 아무 것도 선택하지 않으면 빈 문자열을 반환하고 싶지만 대신 null을 반환합니다.

function getSelectValues(select) { 
    var values = ""; 
    var sep = ""; 
    $("option:selected", select).each(function(){ 
    values += sep + ($(this.val())); 
    sep = ", "; 
    }); 
    return values; 
} 

는 또한 시도 :

$(select).each(function(){ 
    $("option:selected", this).each(function(){ 
    values += sep + ($(this.val())); 
    sep = ", "; 
    }); 
}); 

중 하나가 작동하지 않았다.

답변

1

. 나는 당신이 다중 선택을 가지고 있다고 가정하고 있습니다. 아마도 다음과 같을 것입니다 :

var vals = $(select).val(); 
return vals ? vals.join(', ') : ""; 
+0

고마워,이 나를 위해 잘 작동합니다. – Risu

0

each을 사용하면 this이 원시 HTML 요소입니다. jQuery 메서드를 호출하기 전에 jQuery로 둘러 쌀 필요가있다. 옵션 다수가 켜져와

2

당신은 단순히 선택을 위해 .val()을 사용할 수 있습니다 다음 .val() 방법은 주로 입력을 선택하고 텍스트 영역과 같은 폼 요소의 값을 가져 오는 데 사용됩니다

. <select multiple="multiple"> 요소의 경우 .val() 메서드는 선택한 각 옵션이 들어있는 배열을 반환합니다. 옵션을 선택하지 않으면 null을 반환합니다.

http://api.jquery.com/val/

+0

OP는'null'이 반환되기를 원하지 않습니다. 빈 문자열입니다. – Zuul

0

당신은 어떤 문서 또는 tutorials를 읽어 보지 않았, 당신을 했습니까?

$.extend({ 
    myFunc : function(someArg) { 
     /* …function code… */ 
    } 
}); 
$.myFunc(args); 

보기 (단일 선택을위한) 선택된 값을 반환 $(select).val()select 요소 또는 다중 선택하는 어레이 또는 null 들어 http://jquery-howto.blogspot.de/2009/11/create-callback-functions-for-your.html

+0

감사합니다. 보내 주신 의견에 감사드립니다. 플러그인을 만들지 않아서 플러그인을 검색 한 적이 없기 때문에 제안한 자습서를 처음 접한 적이 없습니다. – Risu

+0

@Risu 그 기능은 "jQuery 길"을 설정하면 매우 다른 일을 할 수 있기 때문에 플러그인과 관련이있는 것은 아닙니다. 방금 jquery + 함수를 검색하여 튜토리얼을 찾았습니다. 그런 식으로 자신의 함수로 jQuery를 확장하고있다. 당신은 또한 자신의 확장을 확장 할 수 ... – feeela

관련 문제