2014-01-25 1 views
0

jQuery에서이 목록의 모든 데이터 필터를 검사하려고합니다. 단어 사이에 공백이 있으면 ","로 바꿔야합니다. (나는 그것들이 수업이 될 필요가있다).jQuery : 데이터 필터를 확인하고 공백을 바꾸십시오.

이것은 내가 시도한 것이지만 콘솔을 확인할 때 "바꾸기가 함수가 아닙니다"라고 표시됩니다.

HTML

<ul class="filter-list" data-option-key="filter"> 
    <li> 
     <a data-filter=".class one" class="" href="#filter">class one</a> 
    </li> 
    <li> 
     <a class="" href="#filter" data-filter=".class two">class two</a> 
    </li> 
    <li> 
     <a class="" href="#filter" data-filter=".class three">class three</a> 
    </li> 
</ul> 

jQuery를이

$('.filter-list a[data-filter]').each(function() { 
    $(this).replace(/\s/g,", ."); 
}); 

기본적으로 jQuery를 발견 할 때 "을 .class 세"가 "의 .class .3"로 교체해야합니다.

답변

1

당신은 할 .attr()을 사용할 수 있습니다 그것은

$('.filter-list a[data-filter]').attr('data-filter', function (i, attr) { 
    return attr.replace(/\s+/g, ", ."); 
}); 

데모 : Fiddle

내부 each() 핸들러, this는 DOM 요소를 참조하고 $(ths)가이없는의 jQuery 객체를 반환하기 때문에 코드는 실패 대체 방법

+0

, 답변 주셔서 감사합니다 : 그래서 코드처럼 뭔가를 할 수 있습니다. 코드가 완벽하게 작동했습니다. –

0

코드에서 :

$(this)은 DOM 요소입니다. 당신은 $(this).text()에 의해 텍스트를 얻을 수 있습니다. 지금은 이해

$('.filter-list a[data-filter]').each(function() { 
    $(this).text($(this).text().replace(/\s/g,", .")); 
}); 
관련 문제