2013-06-10 1 views
0

동적 HTML을위한 요소를 동적으로 구성하고 있습니다.

나는 display:table를 만드는거야, 그리고 모두가 잘되어 가고있는 것 같다,하지만 난 그게이었다 전에 $.append() 에드 요소의 name을 변경할 때, 그것은 크롬 "요소"에 표시되지 않으며 나중에 선택할 수 없습니다 jQuery에 의해; 그러나 $.append() 전에 $.prop('name')alert() 일 수 있습니다.

$.prop('name')을 변경하기 전에 동적으로 구성된 요소를 $.append()으로 수정해야합니까?

코드 샘플 :

$.fn.appendSingleRecordInsert = function(paramaterObject) { 
    return this.each(function() { 
     var $appendDiv = $('<div/>') 
     ... 
     $.each(paramaterObject.rows, function(rowKey, rowValue){ 
      var $rowDiv = $('<div/>'); 
      $.each(rowValue.columns, function(columnKey, columnValue){ 
       var $columnDiv = $('<div/>'); 
       if(typeof columnValue.name !== 'undefined'{ 
        $columnDiv.prop('name', columnValue.name); 
       } 
       ... 
       $rowDiv.append($columnDiv); 
      }) 
      $appendDiv.append($rowDiv); 
     }); 
     $(this)[paramaterObject.domInsertMethod]($appendDiv); 
    }); 
+0

요소가 보이고 inspect 요소에 표시되지만 이름이 잘못 되었습니까? 대신'attr'을 시도해 보셨습니까? –

+0

@JamesMontagne 예, 모든 나머지 코드는 예상대로 작동합니다. attr은 "나쁘다";)) 시도 할 것이다! .... UPDATE : 그것은 효과가있다! 대답을 확대하고 싶습니까? 왜 그런지 알아? –

+0

dom에 추가되지 않은 요소로 작업 할 때 "attr"은 내 머리 속에서보다 의미가 있습니다. –

답변

1

당신은 attr 대신 prop 시도 할 수 있습니다. "속성 선택자"는 속성이 아닌 속성을 기반으로 선택합니다. $("div[name=...과 같은 작업을 수행하려면 속성이 아닌 속성을 설정해야합니다.

namediv에서 유효한 속성이 아니지만 유의해야합니다.

2

name property<div> 요소에는 적용 할 수 없습니다.이 요소에는 name 속성이 없습니다. 따라서 속성 변경은 속성 값 (DOM 관리자)에 반영되지 않습니다.

선택기가 필요한 경우 ID 또는 클래스를 사용해야합니다.

+0

을 추천하거나 더 정확한 것으로'class'로 변경했습니다. 속성. – JCM

관련 문제