I get a jQuery object from an HTML string, then I loop through the elements and try to get their CSS property, but in return I get an empty string.
var htmlStr = '<p style="text-align: left;">This first string</p>';
htmlStr += '<p style="text-align: center;">This second string</p>';
htmlStr += '<p style="text-align: right;">This third string</p>';
var itemsContent = $(htmlStr);
for (let i = 0; i < itemsContent.length; ++i)
{
let align = itemsContent.eq(i).css("text-align");
...
}
variable align
allways empty. Please tell me what am I doing wrong?
You could just call Parser#parseFromString and iterate over p
elements finding who has text-align
:
let parser = new DOMParser()
let domDocument = parser.parseFromString(htmlStr, 'text/html')
let elements = [].slice.call(domDocument.querySelectorAll('p'))
elements.filter(e => e.style.textAlign)
Your code works fine. Take note of the console.log and comment.
var htmlStr = '<p style="text-align: left;">This first string</p>';
htmlStr += '<p style="text-align: center;">This second string</p>';
htmlStr += '<p style="text-align: right;">This third string</p>';
var itemsContent = $(htmlStr);
for (let i = 0; i < itemsContent.length; ++i) {
let align = itemsContent.eq(i).css("text-align");
console.log(align); // you can call a function here or re-asign the variable.
}
Your code should work just fine, but just incase i rewrote it with test
var htmlStr = '<p style="text-align: left;">This first string</p>'; htmlStr += '<p style="text-align: center;">This second string</p>'; htmlStr += '<p style="text-align: right;">This third string</p>'; $(htmlStr).each(function(){ var align = this.style.textAlign; console.log(align); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
try this
var htmlStr = '<p style="text-align: left;">This first string</p>';
htmlStr += '<p style="text-align: center;">This second string</p>';
htmlStr += '<p style="text-align: right;">This third string</p>';
var itemsContent = $(htmlStr);
i=0;
for (let i = 0; i < itemsContent.length; ++i)
{
let align = itemsContent.eq(i).css("text-align");
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.