2012-05-05 5 views
0

이 내 코드입니다 :
이의는 기본적으로 나는 내 웹 사이트에이 개 테이블이 namejQuery를 포함 선택, 정규식

$("#first_table").append($('#second_table').find("tr:contains(" + name + ")")); 

john로 설정한다고 가정 해 봅시다. 나는 처음부터 둘째로 요소를 옮기고 싶습니다. 그러나 완전히 일치하는 경우에만 요. 내가 어떻게 할 수 있니?

내 테이블에 john , john #2이있는 경우 모두 이동합니다. john으로 이동하고 john #1 및 으로 남겨주세요. 고마워요! 편집 : 코드를 name 정확히 일치하도록 작동하고 싶습니다. nameJOHN 인 경우 JOHN 만 입력하면됩니다. JOHN #1 인 경우 JOHN #1 등으로 설정해야합니다. 이것이 가능한가?

답변

0

모든 이름은 :contains(" + name +") 문과 동일하므로 모두 일치합니다.

는 "#"로 하나를 생략 할 :not와 함께,이 시도

$("#first_table").append($('#second_table').find("tr:contains(" + name + "):not(:contains('#'))")); 

업데이트 :

당신이 내부의 값에 대한 정확하고 싶다면

. 그런 다음 이런 식으로 사용하십시오.

$("#second_table tr td").each(function() { 
    if($(this).text() == 'John') { 
    $(this).closest("tr").appendto($("#first_table")); //find the cotaining tr and append to another table 
    } 
}); 
+0

감사합니다. 한 가지 더 - 예를 들어 john # 2를 얻으려면 어떻게해야합니까? 코드가 변수 이름을 정확히 일치 시키도록하고 싶습니다. 이름이 JOHN이면 JOHN 만 가져야합니다. JOHN # 1이면 JOHN # 1 만 가져야합니다. 이것이 가능한가? – pangi

+0

@ JernejPangeršič, 업데이트를 참조하십시오 – Starx

+0

답변 주셔서 감사합니다,하지만 그것은 어떤 이유로 작동하지 않습니다. – pangi

0

따옴표가 누락 된 경우 일 수 있습니다. 아래와 같이 name 주위에 작은 따옴표를 추가하십시오.

$("#first_table").append($('#second_table').find("tr:contains('" + name + "')")); 
+0

시도했지만 작동하지 않습니다. 그래도 답장을 보내 주셔서 감사합니다! – pangi

+0

@ JernejPangeršič, 'John A'에는 'John B'가 포함되어 있지 않으므로 선택자에 영향을주는 항목이 없으므로 항목이 모두 이동하지 않아야합니다. 'name '은 확실히'John'이 아니라'John A'입니까? – Nadh

+0

죄송합니다. 잘못 설명했습니다. 원래 게시물을 편집하여 살펴 봅니다. 불편을 끼쳐 드려 죄송합니다. – pangi