gpt4 book ai didi

javascript - 使用 Javascript 解析 HTML 字符串以获取元素内容

转载 作者:行者123 更新时间:2023-12-01 02:25:31 25 4
gpt4 key购买 nike

我有以下包含多个元素的字符串:

'<span class="fn" id="fn1">Matthew</span>
<span class="spouse" id="spouse1">Evelyn Ross</span>
<span class="bday" id="bday1">1456</span>
<span class="wday" id="wday1"></span>
<span class="dday" id="dday1">2000</span>'

将其解析为 5 个变量的最佳方法是什么?

编辑

为了清楚起见,这里是完整的代码,我正在为 jEditable 创建一个自定义输入类型,它允许我内联编辑 vcard。

   $.editable.addInputType('person', {
element : function(settings, original) {
var fn = $('<input id="fn_"/>');
var bday = $('<input id="bday_" />');
var wday = $('<input id="wday_" />');
var dday = $('<input id="dday_" />');
var spouse = $('<input id="spouse_" />');

$(this).append(fn);
$(this).append(bday);
$(this).append(wday);
$(this).append(dday);
$(this).append(spouse);

/* Hidden input to store value which is submitted to server. */
var hidden = $('<input type="hidden">');
$(this).append(hidden);
return(hidden);
},

content : function(string, settings, original) {
var $data = $(string);

var data = {};
$data.each(function () {
var $t = $(this);
data[$t.attr('id')] = {
class: $t.attr('class'),
value: $t.text()};
});

alert(data.length());

$("#fn_", this).val('Name');
$("#bday_", this).val('Born');
$("#wday_", this).val('Married');
$("#dday_", this).val('Died');
$("#spouse_", this).val('Spouse');
},

submit: function (settings, original) {
var value = "<span class=fn>" + $("#fn_").val() + '</span>' + '<span class=spouse>' + $("#spouse_").val() + '</span>' + '<span class=bday>' + $("#bday_").val() + '</span>' + '<span class=wday>' + $("#wday_").val() + '</span>' +'<span class=dday>' + $("#dday_").val() + '</span>';
$("input", this).val(value);
}

});

最佳答案

创建一个元素,使用 innerHTML 将其放入该元素,并使用 querySelector 选择它们。

因此,假设您只想使用普通的旧 js:

el = document.createElement('p');
el.innerHTML = '<span class="fn" id="fn1">Matthew</span> ... <span class="dday" id="dday1">2000</span>'
el.querySelector('.fn').innerText // = 'Matthew'
el.querySelector('#fn1').outerHTML // = "<span class="fn" id="fn1">Matthew</span>"

这几乎直接翻译成 jQuery:

el = $('<p />').html('<span class="fn" id="fn1">Matthew</span> ... <span class="dday" id="dday1">2000</span>');
el.find('.fn').text() // = 'Mathew'

关于javascript - 使用 Javascript 解析 HTML 字符串以获取元素内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4354589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com