如何使用document.querySelector或document.querySelectorAll获取任何命名空间的特定标记。
我不能使用JQuery或任何其他库。
实施例
<mml:math>
<mml:row>
</mml:row>
</mml:math>
<math style="display:none;">
<mrow>
<msup>
<mfenced>
<mrow>
<mi>a</mi>
<mo>+</mo>
<mi>b</mi>
</mrow>
</mfenced>
<mn>2</mn>
</msup>
</mrow>
</math>
var tags = ['math:not([style*="display:none"])','mml\\:math:not([style*="display:none"])'];
document.querySelectorAll(mathmlVisibleTag.join()).length
此处用户可以使用任何命名空间。
我在querySelectorAll中尝试了'*\\:math:not([style*="display:none"])'
,但它没有用。
此致
答案 0 :(得分:0)
我认为只有querySelectorAll才能实现这一点。也许最好的选择是这样的:
function isVisible(e) {
return !!( e.offsetWidth || e.offsetHeight || e.getClientRects().length );
}
var tags = document.querySelectorAll('*'); // change this to be more specific
var visibleMaths = [].slice.call(tags).filter(function (tag) {
return tag.nodeName.search(/math/i) >= 0 &&
isVisible(tag);
});
答案 1 :(得分:-3)
你错过了空间,这个工作正常:
self.datePicker = UIDatePicker()
self.datePicker.backgroundColor = .white
self.datePicker.datePickerMode = .date
let loc = Locale.init(identifier: "uk")
var calendar = Calendar.current
calendar.locale = loc
self.datePicker.calendar = calendar