我已經寫在有效的HTML屬性的字符串,我希望把這些屬性的實際HTML 元素(不是元素的HTML 串)上。添加HTML字符串屬性添加到html元素
例如,我在明智地命名爲attributesStr
變量中具有屬性的字符串,並且我想將這些屬性添加到#htmlElement
div。
var attributesStr = "";
attributesStr += " class='regularClass'"; // Needs to handle key value attributes.
attributesStr += " title='Title... with spaces!'"; // And attributes with spaces.
attributesStr += " style='color: red; font-weight: bold;'"; // And style with multiple properties.
attributesStr += " data-attributenovalue"; // And attributes with no value.
// Your special code to add the attributes to `#htmlElement` goes here.
<div id="htmlElement">
The HTML element!
</div>
JQuery的/ JavaScript代碼運行之後,#htmlElement
應該是這樣的:
<div id="htmlElement" class='regularClass' title='Title... with spaces!' style='color: red; font-weight: bold;' data-attributenovalue>
The HTML element!
</div>
我怎樣才能做到這一點在JavaScript或jQuery的?
第一次嘗試:我想我能做到這一點通過.split()
對空間荷蘭國際集團attributesStr
,然後拆分每個單獨的屬性鍵值對的=
,然後再遍歷數組,並添加每個鍵值對與jQuery的.prop()
或.attr()
,但這並不原因有二:
- ,因爲他們有空間,它會失敗的
style
和title
屬性。 - 它可能失敗的屬性沒有價值。
'attributesStr.match(/ [^ \ S =] +(= [ '] [^'] * ['])?/克)'這將讓你第一分割 – tallberg
你需要通過在預建的字符串上進行黑客操作來實現這一點。你可以不在你建立該字符串的時候應用樣式嗎?或者甚至創建一個具有這些值的對象以供後續應用? –
@RoryMcCrossan我已經找到了不同的解決方案,我原來的問題,我只是好奇,如果有一種方法來做到這一點在JS/JQuery :) –