使用 jQuery 创建 DOM 元素

发布于 2024-12-06 21:18:06 字数 780 浏览 0 评论 0 原文

我有一个功能

       $(document).ready(function () {
        $("#btnhighlight").click(function () {
            var htext = $("#txthighlighttext").val();
            $("#lstCodelist option").each(function () {
                var sp = $(this).text(); 
                var sp1 = sp.split(' ');
                $.each(sp1, function (i, l) {
                    if (l == htext) {
                        var boldText = "<div style=\"background-color: yellow; display: inline; font-weight: bold;\">" + htext + "</div>";
                        $(document).append(boldText);
                    }
                });
            });
        });
    });

,我更新了代码,但没有运气。 在这段代码中,我需要创建一个 DOM 元素来将黄色应用于该元素。

请任何人帮助我如何创建 dom 元素。

谢谢

I have a function

       $(document).ready(function () {
        $("#btnhighlight").click(function () {
            var htext = $("#txthighlighttext").val();
            $("#lstCodelist option").each(function () {
                var sp = $(this).text(); 
                var sp1 = sp.split(' ');
                $.each(sp1, function (i, l) {
                    if (l == htext) {
                        var boldText = "<div style=\"background-color: yellow; display: inline; font-weight: bold;\">" + htext + "</div>";
                        $(document).append(boldText);
                    }
                });
            });
        });
    });

I updated the code but no luck.
Here in this code I need to create a l has a DOM element to apply color yellow to that.

please can any body help me out how to create a dom element.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

伴我老 2024-12-13 21:18:06

我不明白 l 在当前代码中的位置。无论如何,您可以使用 jQuery 创建一个 DOM 元素,如下所示:var myel = $('

')。 等函数将 myel 附加到 DOM 中您想要的任何位置。

然后,您可以使用 .appendTo().after() >编辑

您似乎试图突出显示 元素内的某些单词。我怀疑这是否适用于所有浏览器,因为表单元素在 CSS 方面有点棘手。您可以尝试这样的操作(未经测试):

$(document).ready(function () {
    $("#btnhighlight").click(function () {
        var htext = $("#txthighlighttext").val();
        $("#lstCodelist option").each(function () {
            var sp = $(this).text();
                var re = new RegExp("\\b" + htext + "\\b")
                sp = sp.replace(re, '<span class="highlighted">$1</span>', "gi");
                $(this).html(sp);
        });
    });
});

您的页面上还需要一些 CSS,定义 .highlighted

UPDATE AFTER CHAT

我使用 得到了一些工作>

而不是 ,以排除表单元素样式问题:

http://jsfiddle.net/GTydh/3/

更新后的js(以防fiddle被删除):

$(document).ready(function () {
    $("#btnhighlight").click(function () {
        var htext = $("#txthighlighttext").val();
        //$("#lstCodelist option").each(function () {
        $("p").each(function () {
            var sp = $(this).text();
            var re = new RegExp("\\b(" + htext + ")\\b")
            var sOpen = "<span class='highlight'>";
            var sClose = "</span>";
            var newhtml = sp.replace(re, sOpen + "$1" + sClose, "gi");
            $(this).html(newhtml);
        });
    });
});

I didn't understand where does l is in your current code. Anyway, you can create a DOM element with jQuery like this: var myel = $('<div class="someclass"></div>'). Then you can append myel to wherever you want in the DOM using function like .appendTo(), .after(), etc.

EDIT

You seem to be trying to highlight some words inside an <option> element. I have doubts if that is going to work on all browsers, since form elements are a little tricky when it comes to CSS. You can try something like this (untested):

$(document).ready(function () {
    $("#btnhighlight").click(function () {
        var htext = $("#txthighlighttext").val();
        $("#lstCodelist option").each(function () {
            var sp = $(this).text();
                var re = new RegExp("\\b" + htext + "\\b")
                sp = sp.replace(re, '<span class="highlighted">$1</span>', "gi");
                $(this).html(sp);
        });
    });
});

You also need some CSS on your page, defining the style for .highlighted

UPDATE AFTER CHAT

I got something working using a <p> instead of <option>, to rule out the problem of form element styling:

http://jsfiddle.net/GTydh/3/

The updated js (in case fiddle is deleted):

$(document).ready(function () {
    $("#btnhighlight").click(function () {
        var htext = $("#txthighlighttext").val();
        //$("#lstCodelist option").each(function () {
        $("p").each(function () {
            var sp = $(this).text();
            var re = new RegExp("\\b(" + htext + ")\\b")
            var sOpen = "<span class='highlight'>";
            var sClose = "</span>";
            var newhtml = sp.replace(re, sOpen + "$1" + sClose, "gi");
            $(this).html(newhtml);
        });
    });
});
寂寞花火° 2024-12-13 21:18:06

像这样的东西吗?

$(document).append($('<div />').css('color', 'yellow'));

这会将一个黄色的新 div 添加到文档中。如果您需要将其添加到特定元素,只需使用 $('#myselector') 而不是 $(document)

Something like this?

$(document).append($('<div />').css('color', 'yellow'));

That will append a new div with a colour of yellow to the document. If you need to add it to a specific element just use $('#myselector') instead of $(document)

今天小雨转甜 2024-12-13 21:18:06

它很简单

var newEl = $('<div THE_ATTRIBUTES_YOU_WANT></div>');
$('THE_ELEMENT_YOU_WANT_TO_APPEND_OR_ADD').append(newEl);

Its quite simple

var newEl = $('<div THE_ATTRIBUTES_YOU_WANT></div>');
$('THE_ELEMENT_YOU_WANT_TO_APPEND_OR_ADD').append(newEl);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文