在jQuery中,itemcope,属性或属性是什么类型的东西?

时间:2017-05-10 20:36:34

标签: jquery properties attributes microdata

如果我想动态地将一个元素设置为一个新的itemscope并给它一个itemtype,那么itemscope从jQuery的角度来看会是什么?换句话说,我应该使用.attr("itemscope", "")还是.prop("itemscope", true)

例如,假设我想在itemscope标记中添加body,并为其指定WebPage类型:

<body itemscope itemtype="http://schema.org/WebPage">

我可以使用$("body").attr("itemtype", "http://schema.org/WebPage")作为类型,但是itemscope

呢?

问题是,当我使用.prop('itemscope', true)时,我没有看到这些更改反映在HTML中(即DOM中没有可见的变化),而使用.attr('itemscope', '')显示更改但作为属性。换句话说,作为itemscope=''而不是itemscope

使用JS / jQuery向元素添加itemscope的有效方法是什么?

var d = $("div");

d.attr('itemtype', 'http://schema.org/WebPage');
d.attr('itemscope', '');
d.prop('itemscope', true);
console.log(d.attr('itemtype'));
console.log(d.attr('itemscope'));
console.log(d.prop('itemscope'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div/>

1 个答案:

答案 0 :(得分:0)

itemscope attribute布尔属性

这意味着它可以通过多种方式指定(在HTML语法中):

  • itemscope
  • itemscope=""
  • itemscope=''
  • itemscope=itemscope
  • itemscope="itemscope"
  • itemscope='itemscope'

(以及具有大/混合大小写的变体以及在某些位置的额外空格也是可能的)

(来自HTML 5.1的引用:2.4.2. Boolean attributes8.1.2.3. Attributes

要使用JavaScript添加,请参阅问题How to add boolean attribute using JavaScript