我有一個包含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