我有一个功能
$(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元素的l,以将黄色应用于该颜色。
请任何人帮我解决如何创建dom元素的问题。
由于
答案 0 :(得分:1)
我不明白当前代码中l
的位置。无论如何,您可以使用jQuery创建一个DOM元素:var myel = $('<div class="someclass"></div>')
。然后,您可以使用myel
,.appendTo()
等功能将.after()
附加到DOM中的任何位置。
修改强>
您似乎试图突出显示<option>
元素中的某些字词。我怀疑这是否适用于所有浏览器,因为表单元素在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
聊天后更新
我使用<p>
代替<option>
工作,以排除表单元素样式的问题:
更新的js(如果小提琴被删除):
$(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);
});
});
});
答案 1 :(得分:0)
这样的东西?
$(document).append($('<div />').css('color', 'yellow'));
这将在文档中附加一个颜色为黄色的新div。如果您需要将其添加到特定元素,请使用$('#myselector')
代替$(document)
答案 2 :(得分:0)
非常简单
var newEl = $('<div THE_ATTRIBUTES_YOU_WANT></div>');
$('THE_ELEMENT_YOU_WANT_TO_APPEND_OR_ADD').append(newEl);