我添加了一个代码来在文本后添加一个asterik(其中包含css类)。代码运行时,它显示代码而不是正在处理的html。 代码:
jQuery(document).ready(function(){
document.getElementById("billing_state_field").getElementsByTagName('label')[0].after("<abbr class='required' title='required'>*</abbr>"));
});
输出:
<label for="billing_state" class="">STATE / COUNTY / PROVINCE / EMIRATE</label>
<abbr class='required' title='required'>*</abbr>
答案 0 :(得分:1)
如果您正在使用jQuery,为什么不充分利用它?
而不是使用
condocument.getElementById("billing_state_field").getElementsByTagName('label')[0]
使用$("#billing_state_field label",condocument).eq(0)
根据评论中的要求,我将.after( ... )
更改为.html( .html() + ... )
$("#billing_state_field label").eq(0).html($("#billing_state_field label").eq(0).html() + "<abbr class='required' title='required'>*</abbr>");
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="billing_state_field">
<label>Test </label>
</div>
&#13;
答案 1 :(得分:0)
after
函数不会使用HTML string
,而是DOM element
或原始文本。
因此,您对after
的调用应如下所示:
jQuery(document).ready(function(){
var abbr = document.createElement("abbr");
abbr.setAttribute("class", "required");
abbr.setAttribute("title", "required");
abbr.innerText = "*";
document.getElementById("billing_state_field").getElementsByTagName('label')[0].after(abbr);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="billing_state_field">
<label for="billing_state" class="">STATE / COUNTY / PROVINCE / EMIRATE</label>
</div>
以下是MDN上after
功能的文档:https://developer.mozilla.org/en-US/docs/Web/API/ChildNode/after
答案 2 :(得分:0)
你可以使用JQuery来做到这一点:
jQuery(document).ready(function(){
$('#billing_state_field').find('label:eq(0)').after("<abbr class='required' title='required'>*</abbr>");
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='billing_state_field'>
<label for="billing_state" class="">STATE / COUNTY / PROVINCE / EMIRATE</label>
</div>
&#13;
答案 3 :(得分:0)
我假设您要在<abbr>
标记中添加<label>
标记。
jQuery和Vanilla JavaScript有两种方式。
要显示jQuery和javaScript的两种方式,我使用两个不同的div。
1) #cnount_state_field_1 // jQuery
2) #cnilling_state_field_2 // javaScript
// jQuery
$('#billing_state_field_1 label').append("<abbr class='required' title='required'>*</abbr>");
// javaScript
var billing_state_lbl = document.querySelector('#billing_state_field_2 label');
node = document.createElement('abbr'); // Create element node
textNode = document.createTextNode('*'); // Create text node
node.classList = "required"; // Add class
node.appendChild(textNode); // Add text node to element node
node.setAttribute('title','required'); // add attribute on element node
billing_state_lbl.appendChild(node); // Append newly created element node
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- Handle by jQuery -->
<div id="billing_state_field_1">
<label for="billing_state">STATE / COUNTY / PROVINCE / EMIRATE - 1 </label>
</div>
<br>
<!-- Handle by javaScript -->
<div id="billing_state_field_2">
<label for="billing_state">STATE / COUNTY / PROVINCE / EMIRATE - 2 </label>
</div>
&#13;