[英]JQuery how get css property from HTML string
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. 我从HTML字符串中获取一个jQuery对象,然后遍历元素并尝试获取其CSS属性,但作为回报,我得到了一个空字符串。
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. 变量始终
align
空。 Please tell me what am I doing wrong? 请告诉我我做错了什么?
You could just call Parser#parseFromString and iterate over p
elements finding who has text-align
: 您可以只调用Parser#parseFromString并遍历
p
元素以查找谁具有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.
记下console.log并进行注释。
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");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.