我有一个包含HTML代码段的字符串,我想从元素dt
中获取id
属性的值。如何从字符串HTML代码片段获取特定属性值
var myHtml = "<dt id='119'>Email</dt><dd id='container'>my text</dd>";
预期结果:
var myId = 119;
没有人有任何想法如何,我可以做到这一点?
我有一个包含HTML代码段的字符串,我想从元素dt
中获取id
属性的值。如何从字符串HTML代码片段获取特定属性值
var myHtml = "<dt id='119'>Email</dt><dd id='container'>my text</dd>";
预期结果:
var myId = 119;
没有人有任何想法如何,我可以做到这一点?
你可以用jQuery中的字符串,只需使用attr
var myId = $(myHtml)
.first() // get the first element - <dt>
.attr("id"); // get the id
请注意,你可以只使用attr
因为jQuery的只得到,如果多个元素所涉及的第一属性,但使用first
更语义 ,或者至少我是这么认为的。
您可以在控制台测试:
$("<dt id='119'>Email</dt><dd id='container'>my text</dd>").eq(0).attr('id')
简单地可以使用.attr()
var myHtml = "<dt id='119'>Email</dt><dd id='container'>my text</dd>";
var myId = $(myHtml).first().attr('id');
alert(myId);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
你应该明确地定位'dt',以防在目标id之前添加其他id(或者顺序颠倒),但是这会起作用。 – 2014-12-04 16:22:41
^'
这么简单,tks。 – Brandao 2014-12-04 16:45:38
如果元素的顺序可以改变你应该找到具体dt
然后获取其id
属性。 attr()
,本身只返回找到这样的第一个匹配的id是不是一个强大的解决方案:
$(myHtml).filter('dt').attr('id')
你必须使用filter()
,而不是find()
,因为它们是在HTML代码段中所有顶级元素。
http://jsfiddle.net/TrueBlueAussie/ghwzsao0/
的更安全的替代,如果该含量可以变化,是包装的HTML在另一个临时元素find()
可以用于:
$('<div>').html(myHtml).find('dt').attr('id')
它的工作原理。谢谢 – Brandao 2014-12-04 16:44:54
@Brandao很高兴帮助过你 – 2014-12-04 16:47:39