을 설정합니다. 이어야 하나 개의 단어가 포함 된 S :이 필터는 이미 모든 .single
'의나는 자바 스크립트 기반의 필터를 쓰고 있어요
//take them off dom, manip and put them back
singles.detach().each(function(i) {
var $this = $(this);
//make sure everything is visible
$this.show();
//if this template is not included OR if this index number does not meet the treshold
if($.inArray(i, included) == -1 || treshold >= templates[i].score) {
$this.hide();
}
}).appendTo(container);
배열 included
는 .single
의 모든 인덱스 포함 단어를 포함하지 않는 S'를 숨 깁니다. 배열 templates
에는 .single
에 해당하는 모든 텍스트와 관련성 및 단어 수를 기준으로 한 개체가 포함되어 있습니다. 예를 들어 :
templates = [
{ text: ['long string', 'long string 2'], score: 5 },
{ text: ['sf sd', 'gdasd'], score: 3 }
]
(그래서 모든 인덱스는 DOM에서 발생하지 않습니다)
지금 내가 원하는, 또는 다른 말로하면이 점수에 따라 세트를 정렬하는 것입니다 온 가장 높은 점수 상단. 세트의 각 요소 색인은 templates
(모든 점수 포함)의 색인과 같습니다.
저는 $ .each()가 아닌 $ (elem) .each()를 사용하고 있습니다.(). 템플릿과 세트는 이미 동일한 순서로되어 있으므로 '데이터'(팁을 주셔서 감사합니다)를 사용하여 점수를 바인딩 할 수 있습니다. 그러나 당신이 제안한 정렬은 점수를 정렬하지 않고 대신 다른 결과를 보여줍니다 (이유는 알 수 없습니다). – askmike
간단한 데모에서 시도해 보았습니다. http://jsfiddle.net/bKfwv/ – charlietfl
네 말이 맞아. 그럼 내 다른 코드 여야합니다. 솔루션을 가져 주셔서 감사합니다! – askmike