2017-12-29 11 views
-1

안녕하세요 모두 내가 JQuery와 - 플러그인을 사용하고어떻게 jQuery를 선택에서 적절한 outerHTML에를 얻을 수

코드의 다음 줄이 있습니다 내 코드에서

return '<td>' + field.setValue(field.html, content)[0].outerHTML + '</td>'; 

setValue

field_templates: { 
     'number': { 
      html: '<input type="number" name="monday-start">', 
      getValue: function (input) { 
       return $(input).val(); 
      }, 
      setValue: function (input, value) { 
       if (value) { 
        return $(input).val('66').addClass('setValue').data('dtv-val', 555); 
       } 
       return $(input).val(''); 
      } 
     } 
    }, 

그 결과는 다음과 같습니다 :

<input type="number" name="monday-start" class="setValue"> 

하지만, 나는 내가 잘못

<input type="number" name="monday-start" value="66" class="setValue" data-dtv-val="555"> 

이, 저를 설명해주십시오 추적을 얻으려면? 내가 모르는 것? input이 나를 필요로하는 속성을 얻으려면 어떻게해야합니까? JavaScript에 대해 충분히 알지 못하기 때문에 JS 문서에 대한 링크를 얻을 수 있습니다. 내 질문에 대한 이론이 설명되어 있습니다.

+0

는'content' 블록의 값이 무엇입니까 (당신이 원하는 경우에 당신은 .addClass('setValue').attr('class', 'setValue')을 변경할 수 있습니다)? 설정은 어디입니까? – jmargolisvt

+0

@ jmargolisvt,'content'는 제 경우에는 중요하지 않습니다. 메소드의 두 번째 인수입니다. 나는 지금 그것을 사용하지 않았다. –

+0

* value 속성 *과 * value 속성 * 사이에는 차이가 있습니다. 양식을 재설정해야하는 경우가 아니면 요소가 렌더링 된 후에 속성이 중요하지 않습니다. 사용자가 뭔가를 입력하면 * value 속성에서만 사용할 수 있으며 속성은 변경되지 않습니다. – charlietfl

답변

1

.val() :
.val('66') val 66, 뭔가 입력했듯이 value 자체가 아닙니다.


.addClass() :

.addClass('setValue'), 괜찮아 '의 setValue'라는 클래스를 추가합니다; 및


.data()는 :
.data('dtv-val', 555)는 추가 정보를 원하시면 API를 읽고, 그런 식으로 아무것도 변경되지 않습니다.
.attr() 당신이 검색하는 것입니다 :

$('#ipt').attr('value','66').attr('class','setValue').attr('data-dtv-val', '555');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 

 
<input id="ipt">

+1

.attr()을 사용하는 것이 좋습니다. ?? – YouneL

+0

'attr ('class')'와'addClass()'는 다른 일을한다. 후기는 기존 수업을 유지합니다. 'attr ('class'..'기존 클래스를 지울 것인가? – charlietfl

+0

@YouneL이 아이디어가 도움이되었습니다. 누구와 관계없이 감사합니다. –

0

아마 당신이 원하는 것을 얻는 것일뿐입니다.

jQuery에서는 데이터 요소를 HTML에 넣지 않습니다. 그냥 숨겨진 방법으로 저장합니다.

그러나 요소를 다시 가져 와서 데이터를 확인하면 실제로 있음을 알 수 있습니다. 자사의 HTML 부분에 영향을주지 않고 일치하는 요소에 키 - 값 쌍을 저장합니다 .data() 방법을 사용하여

console.log($('[name="monday-start"]').data('dtv-val')) 
1

, 당신은 사용할 필요가 .attr() :

이 라인 님의

return $(input).val('66').addClass('setValue').data('dtv-val', 555); 

변화를 :

return $(input).val('66').addClass('setValue').attr('dtv-val', 555);