2014-04-23 8 views
-1

앵커 태그를 제거하고 span 태그로 바꾸려고 시도하지만 클래스 attr을 유지합니다. 나는이 코드를 가지고 있지만 클래스에 "정의되지 않은"코드를 보여주고있다.jQuery가 span 태그에 앵커 태그를 대체했습니다.

$("#wprmenu_menu").find('li:has(ul) > a').replaceWith(function() { 
    var Qthis = $(this); 
    var className = Qthis.attr('class'); 
    return $("<span class=\"" + className + "\">" + Qthis.html() + "</span>"); 
}); 

앵커 태그가 제거되고 내부 텍스트는 그대로 유지되지만 클래스는 전송되지 않습니다.

+0

당신이 사용할 수있는 [JS 바이올린] (http://jsfiddle.net/), 또는 유사한, 데모가 있습니까? –

답변

0

코드에 문제가없는 것으로 보입니다. 선택자를 기반으로 간단하게 가정했습니다. 이스케이프 문자를 작은 따옴표로 변경했습니다. 결과에 영향을 미치지 않습니다. Fiddle

$("#wprmenu_menu").find('li:has(ul) > a').replaceWith(function() { 
    var Qthis = $(this); 
    var className = Qthis.attr('class'); 
    return $("<span class='" + className + "'>" + Qthis.html() + "</span>"); 
}); 
+0

답장을 보내 주셔서 감사합니다. @mtm 응답에 늦어서 죄송합니다. 이 스 니펫이 문제가되지는 않았지만이 시점에서 실제 문제가 무엇인지 확신 할 수 없습니다. 인용문 구문을 읽기가 더 쉽다는 것에 동의합니다. 그 이후로 나는 JS에서부터 먼 길을왔다. – ValleyVal971

0
$('#myButton').click(function(){ 
    $("#someDiv a").replaceWith(function(){ 
     return $("<span>" + $(this).html() + "</span>"); 
    }); 
}); 
+0

이 코드 단편은 환영하며 도움을 줄 수도 있지만 * how * 및 * why *가이 문제를 해결할 경우 [설명이 포함 된 경우 크게 개선 될 것입니다] (// meta.stackexchange.com/q/114762) 문제. 지금 묻는 사람뿐만 아니라 앞으로 독자에게 질문에 답하고 있다는 것을 기억하십시오! 설명을 추가하려면 답을 편집하고 어떤 제한 및 가정이 적용되는지 표시하십시오. –