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 中替换类属性并且我的设计已经混搭了。因为“las”关键字出现在“Class”中。所以它正在取代这个。

我只想替换我在 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 回答