2010-06-29 5 views
1

페이지에서 모든 텍스트 상자의 값을 1부터 시작하여 숫자로 자동 채우는 훌륭한 자바 스크립트가 있습니다.자바 스크립트에서 텍스트 상자의 ID를 확인하는 방법?

function editTextBoxes() { 
     var textboxs = $('input:text'); 

     for (i = 0; i <= textboxs.length; i++) { 
      $('input:text:eq(' + i + ')').val(i + 1); 
     } 
    } 

하지만, 난 단지 ID 포함 txtSortOrder 누가 텍스트 상자를 채우려는 누군가가 나이 줄을 해결하는 데 도움 주실 래요

:

if ($('input:text:eq(' + i + ')').ID.Contains("txtSortOrder") 

답변

3

당신은 당길 수 (그냥 추측) attr 기능을 사용하는 모든 속성. Contains()의 경우 indexOf을 사용할 수 있으며 검색을 찾을 수없는 경우 -1을 반환합니다.

은 그래서 지금까지 우리이 제공 :

if ($('input:text:eq(' + i + ')').attr('id').indexOf("txtSortOrder") !== -1) 

지금, 당신의 반복에 대해, 당신이 실제로 쿼리의 결과를 처리 each를 사용할 수 있습니다.

예.

function editTextBoxes() { 
    $('input:text[id~=txtSortOrder]').each(function (index) { 
     $(this).val(index + 1); 
    }); 
} 

공지 사항이 당신의 선택은 Attribute Contains word Selector 사용하는 확장 : 당신이 ID 비교를 할 필요가 없습니다 의미 input:text[id~=txtSortOrder]

을 수동으로

+0

+1, 감사! – aron

+0

아, 아니, txtSortOrder와 같지 않지만 그냥 포함하고 있습니다. – aron

+0

@aron - 죄송합니다. :)'! ='보다는'~ ='이 될 것입니다 - 내 업데이트를보십시오. – Matt

1

코드 :

그것은 일
function editTextBoxes() { 
    // it will select all textboxes which id contain txtSortOrder 
    var textboxs = $('input:text').filter(function(){ 
     this.id.indexOf("txtSortOrder") !== -1; 
    }); 

    for (i = 0; i <= textboxs.length; i++) { 
     $('input:text:eq(' + i + ')').val(i + 1); 
    } 
} 
+0

+1 필터가 있기 때문에이 솔루션과 같습니다. 필터를 사용하면 순서가 동기화됩니다. 그러나 그것이 나를 위해 작동하지 않았기 때문에 코드에 작은 문제가있을 수 있다고 생각합니다. – aron

관련 문제