2012-07-24 2 views
0

스타일링 용도로 약간의 문제가 있습니다. 내 dd 태그 안에 콤보 상자 대신 정의 목록을 사용하고 있습니다. 모든 li 내부에 ul이 있습니다. 값 속성이있는 범위가 있습니다. 그 값을 텍스트 필드에 넣으려고하고있어 포스트 액션에서 사용할 수 있습니다. 이 코드는 내 리튬의 클릭 기능 내부 :JQuery의 스팬 값 속성에서 텍스트 필드 값 설정

var temp = $(this).find("span").attr("value"); 
$("#ch").val(temp); 

내가 온도의 값을 기록 할 때, 그것이 내가 원하는 일이기 때문에 내 선택이 옳다고 생각하지만, 나는 채널 필드의 값을 기록 할 때, 내가 할 정의되지 않았습니다.

무엇이 누락 되었습니까? 미리 감사드립니다.

호세.

답변

2
$("#ch").val($(this).find("span").text()); 

대신 위의 예로서 .on()를 사용해야합니다 잘못된 방법), 그러면 목표를 두드리지 않을 것입니다. 요소의 ID가 ch일까요?

+0

오른쪽 마음에서 'span' 엘리먼트에'value' 속성을 부여하는 사람 (마지막 업데이트 당)? 'span' 엘리먼트는 마크 업에서 직접 정의하지 않는 한'value' 속성을 갖지 않습니다. –

+0

@ FabrícioMatté - 누가 알겠습니까? 그러나 질문에는 '임시 변수'에 올바른 값이 포함되어 있다고 나와 있습니다? – adeneo

+0

오, 내 잘못, 나는 그가 'temp'에서 올바른 가치를 얻으려고 언급 한 부분을 놓쳤다. 필자의 주장은 여전히 ​​유효하지만,'data-'속성이나 그 주위에 또 다른 백 가지 더 좋은 방법을 사용할 수있다. 그가 사용자 정의 속성을 생성하는 경우 OP에 대한 몇 가지 [참조] (http://stackoverflow.com/q/992115/1331430)가 있습니다. –

1

여러분이 직접 마크 업에서 정의하지 않는 한, span 요소에는 value 속성이 없습니다.

사용이 :

$('#ch').val($(this).find('span').html()); 

또는이 내부

$('#ch').val($(this).find('span').text()); 

:


가능한 방법은 당신이 원하는 것을 달성하기 위해 undefined 문제에 대한

가능한 해결책 :

  • 당신이 값을 설정 할 요소에 대한 올바른 ID를 사용하고 있는지 확인하십시오.
  • 어쩌면 당신의 요소 #ch는 DOM에 있으므로 사용할 때 temp도 올바른 값을 (이 있는지 있다면 당신은 그러나 단지 $(selector).click();