2009-12-02 2 views
0

사용자 정의 속성이있는 모든 요소를 ​​선택하고 이름과 값을 가져 오는 함수가 필요합니다. 예를 들면 다음과 같습니다.콜론이있는 jquery 사용자 정의 선택자

<input type="text" my:name="koni" my:age="20" my:city="New York" /> 

my은 항상 동일하지만 그 뒤에는 없습니다.

var attr = //here should be the attribute (attr, or attr2) 

var value = //here should be the value (test, or hello) 

내가 그 방법을 만들 수 있습니다 : 내 기능에 그때하고 싶은 말?

편집 : 죄송합니다. html을 붙여 넣으 셨습니다.

나는 이러한 사용자 정의 내 특성을 가진 각 입력을 루프하고 값과 키를 배열로 가져 오려고합니다. 이 예를 들어, 내가이 있어야합니다

KONI 키 = 이름, 값 =

키 = 나이, 값 = 20

...

+0

정확히 무엇을 하려는지 명확하지 않습니다. 좀 더 명확하게하려고하십시오. –

+0

업데이트 된 버전 – k0ni

답변

1

난 당신이 당신이 찾고있는 속성의 정확한 이름을 알고하지 않기 때문에, JQuery와 선택기를 사용하기 쉬운 하나의 급습에서이 작업을 수행 할 수있는 쉬운 방법이라고 생각하지 않습니다. (그 접두어 만 알면됩니다.) 그래서, 아마도 모든 입력을 반복 할 수 있고, 원하는 일치 항목을 검사하는 속성을 살펴볼 수 있습니까?

$('input').each(function() { 
    var result = {};        // to hold any results we might find 
    var attrs = this.attributes;     // this array is provided by the DOM 
    for (var idx in attrs) { 
     var attrName = attrs[idx].name; 
     if (/^my:/.test(attrName)) {     // must start with this hardcoded pattern 
      var key = attrName.substring(3);  // skip first 3 chars 
      var value = $(this).attr(attrName); 
      result[key] = value; 
     } 
    } 
    // do something with your result obj here... 
    if (result['name']) { 
     alert('found input with my:name of ' + result['name']); 
    } 
}); 

내가 대신 (더 이해가 보인다) 배열의 객체에 결과를 가져온 거에요하지만 당신이 모든이를 구체화하기 위해 관심을 가져야 일반적인 아이디어를 줄 것이다.

행운을 빈다.

+0

입니다. 감사합니다. – k0ni

0

당신이해야 선택할 수 있어야합니다.

<div cheese="brie">foobar</div> 

usin g

var items = $("div[cheese]"); 
+0

을 참조하십시오. 요소는 속성뿐만 아니라 일반 요소 여야하므로 작동하지 않습니다. 속성은 "my :"로 시작하지만 끝은 일반 – k0ni