2011-01-30 3 views
1

내 게시물마다 최적화 된 키워드가 다릅니다. 게시 내용을 취하고 강력한 키워드로 키워드의 첫 번째 인스턴스를 감싸는 루틴이 필요합니다. 요소의 속성 컬렉션 (title, src, alt 등)의 (1) 부분 인 경우 키워드를 꾸미고 싶지 않습니다. 그리고 그것 h1-6 제목 태그에있는 경우 나는 그것을 꾸미 싶지 않아요.jQuery를 라이브 HTML 파서/노드 대체 유틸리티로 사용할 수 있습니까?

나는 dom traversal과 Html parsing/replacement를위한 도구가 많이 있다는 것을 알고있다. jQuery로이를 수행 할 수 있습니까?

누군가 jQuery를 html 파서로 사용하는 예를 제공 할 수 있습니까?

+1

"파서"를 정의하십시오. 당신은 그것을하기 위해 무엇을 필요로합니까? –

+0

jQuery는 DOM을 탐색하는 데 매우 강하다. 구문 분석/대체가 정확히 무엇을 의미하는지 확신 할 수 없다. 자세한 내용을 제공하면 더 나은 대답을 줄 수있다. –

+0

http://api.jquery.com/category/ traversing/& http://api.jquery.com/category/manipulation/ 당신에게 인상을 주어야합니다. – polarblau

답변

0

이것은 귀하가 찾고있는 것일 수 있습니다. 당신은 HTML을 직접 파싱해서는 안됩니다. DOM을 탐색하고 텍스트 노드를 찾는 것이 좋습니다. 당신이

완전히 다른 문제가 있지만 해결의

<p> fo <span> o </span> </p>

처럼 단어 HTML을 중첩 한 경우

var word = "foo"; 

var nodes = $("postSelector").find("*"); // get all elements 

for (var i = 0; i < nodes.length; i++) { 
    // get the node 
    var node = nodes.eq(i); 
    // if the tagName is a h1-h6 then continue 
    if (/h\d/.test(node[0].tagName)) continue; 
    if (node.text().indexOf(word) > -1) { 
     // handle the textual replacement. 
     var text = node.text(); 
     text.replace(word, "<strong>" + word + "</strong>"); 
     node.html(text); 
    } 
} 

문제가 발생할 것입니다.

+0

답변 해 주셔서 감사합니다. "postSelector"란 무엇을 말합니까? –

+0

@ScottB 게시물에 대한 참조가 약간 막연 해 게시물을 가져 오기 위해 일종의 선택기가 있어야합니다. 나는 당신의 HTML 코드에 어떤 글이 있는지 모른다. – Raynos

+0

나는 $ post에 의해 나는 wordpress post_content 객체를 참조하고있는 것을 본다. –

관련 문제