0

jqueryで助けが必要です。前もって感謝します。

jqueryのオートコンプリート機能を利用しています。ハイライトのオプションがあります。など :-

highlight: function(match, keywords) {
            return match.replace(new RegExp("("+keywords+")", "gi"),'<b>$1</b>');
        }

正常に動作しています..しかし、HTML形式で結果を取得しています。など :-

<div id='22048,63' style='width:200px;text-align:left;'><div class='floatleft' style='width:165px'>(LAS) Las Vegas McCarran International Airport, Las Vegas, Nevada</div><div class='floatright' style='width:20px;padding-right:15px;'><img src='images/plane.gif' width='14' height='16' /></div></div>

そのため、テキストボックスに「las」と入力すると、HTML のクラス属性が置き換えられ、デザインがマッシュアップされます。「Class」に「las」キーワードが出てくるからです。というわけでこれを交換です。

HTMLで取得したテキストのみを置き換えたい。

jqueryにはオプションがあるので、これを行うことができます..

ありがとうございます。それでは、お元気で

4

1 に答える 1

2

関数を使用.text()して、HTML タグなしでテキストだけを取得できます。例:

function removeAllHtmlInsideDiv() {
    $(".example_1").html( $(".example_1").text() );
};
removeAllHtmlInsideDiv();

あなたの場合、次のように使用できます。

highlight: function(match, keywords) {
    return (match.replace(new RegExp("("+keywords+")", "gi"),'<b>$1</b>')).text();
}

文字列から HTML タグを削除する場合:

function stripHTML(html)
{
    // var html = "<p>Some HTML</p>";
    var div = document.createElement("div");
    div.innerHTML = html;
    var text = div.textContent || div.innerText || "";
    return text;
}

したがって、あなたの場合、次のようにする必要があります。

stripHTML(highlight);

それが役に立てば幸い!:)

于 2012-06-19T05:55:58.380 に答える