2016-09-26 2 views
0

저는이 문제에 대해 몇 가지 방법을 시도해 왔습니다. 기본적으로 나는 똑같은 방식으로 여러 드롭 다운의 내용을 수정해야합니다. 그래서 저는 각자 또는 잠시 동안 더 많이 마셔도 될 수는 있지만 커피 스크립트에서 그렇게 많은 경험을하지는 못합니다. 여기 jQuery는 각각/while while coffeescript 루프가 예상대로 작동하지 않습니다.

는 undry 코드가 리팩토링 '작업'된다

arr = ['someId', 'someOtherId'] 
length = arr.length 
counter = 0 
while counter < length 
$('#' + arr[counter]).val('someVal') 
counter ++ 

몇 가지 이유를 들어

여기
arr = ['someId', 'someOtherId'] 
$.each arr, (i, el) => 
    $('#'+el).val('someVal') 

내 두 번째 시도입니다 :

여기
$('#someId').val('someVal') 
$('#someOtherId').val('someVal') 

내 첫 번째 시도이다 , 나는 각 approch에 여러 변형을 시도해왔다. 나는 selector.log를 반환 할 수 있다고 주장 할 수있다. 올바른 값이지만 값을 변경하면 코드가 예상대로 작동하지 않는 것 같습니다.

도움을 주시면 감사하겠습니다.

+1

하면 각 요소 및 사용에 클래스를 추가 할 수 있습니다 단일 호출 :'$ ('. foo') .val ('someval');' –

+0

확실히 똑똑합니다. 나는이 해결책으로 갈 것이다. 고마워요 로리 – gastngouron

답변

1

시도 :

arr = ['someId', 'someOtherId'] 
for value, index in arr 
    $("##{value}").val('someVal') 

아니면 그냥 인덱스에 대해 걱정하지 않는 경우 : 당신이 HTML에 액세스 할 수있는 경우

arr = ['someId', 'someOtherId'] 
for value in arr 
    $("##{value}").val('someVal') 
+0

조언 해 주셔서 감사합니다. 그러나 잡히지 않은 오류가 발생합니다. 구문 오류, 알 수없는 표현식 : ## {value} here. – gastngouron

+0

내 결함은''## {value} '대신''## {value}''이어야합니다. – sbulat

+0

Worked! 그렇게 보간에 대해 고마워했습니다. 그런 식으로 가능하다는 것을 몰랐습니다. – gastngouron

0

저는 커피 스크립트 사용자가 아닙니다. 하지만 코드를 보면 jquery를 사용하여 배열을 반복하는 것처럼 보입니다. 대신 Array.forEach를 사용하는 것으로 가정합니다. 예.

arr = ['someId', 'someOtherId'] 
arr.forEach (el) => 
    $('#'+el).val('someVal') 
+0

도와 줘서 고마워, 방금 그걸 시도해 봤지만 제대로 작동하지 않아. 해결책을 찾 자마자 바로 알려 드리겠습니다. 지금까지 나는 로리의 해결책으로 갈거야. – gastngouron

+0

입력란에 2 개의 html 요소가 있다고 가정합니다. + DomReady에서도이 코드를 실행하고 있습니까? – Keith

+0

두 개의 HTML 요소 (