【问题标题】:get attribute value returns undefined and set value to attribute creates new attribute with value获取属性值返回未定义并将值设置为属性创建具有值的新属性
【发布时间】:2013-10-18 13:44:13
【问题描述】:

我正在使用 jquery 1.7.1

获取属性值

请参考下面的外部 HTML 元素

$element.get(0).outerHTML


<?xml:namespace prefix = "v" ns = "urn:schemas-microsoft-com:vml" />
<v:shape id=container_vml_CrosshairVertical style="HEIGHT: 1000px; POSITION: absolute; LEFT: 0px; TOP: 0px; VISIBILITY: visible; WIDTH: 1000px" coordsize = "1000,1000" fillcolor = "white" strokecolor = "black" strokeweight = "1pt" path = " m342,58 l342,374 e"></v:shape>

当我使用以下代码获取属性值时,即使它有一些值,它也会返回未定义的值。

$element.attr('path') -> 返回undefined

为现有属性设置新值

请参考下面的代码设置属性值

var val= '"m 386 58 l 386 374';

$element.attr('path',val);

它创建具有指定值而不是替换的新属性。请参考下面的outerHTML

<?xml:namespace prefix = "v" ns = "urn:schemas-microsoft-com:vml" />
<v:shape id=container_vml_CrosshairVertical style="HEIGHT: 1000px; POSITION: absolute; LEFT: 0px; TOP: 0px; VISIBILITY: visible; WIDTH: 1000px" path="m 386 58 l 386 374" coordsize = "1000,1000" fillcolor = "white" strokecolor = "black" strokeweight = "1pt" path = " m384,58 l384,374 e"></v:shape>

请看上面的outerHTML 元素,它包含两个路径属性。我不知道为什么它会再次创建新属性?

谢谢,

湿婆

【问题讨论】:

  • 一个元素中不能有两个同名的属性。
  • @Barmar 是的,这就是要求它使用 value.instead 创建新属性而不是替换
  • Myabe 是因为声明路径中的这个空格 = "?

标签: javascript jquery html


【解决方案1】:

试试

$element.prop('path',val);

【讨论】:

    【解决方案2】:

    我使用 javascript setAttribute 找到了更好的解决方案

    element.setAttribute('path', val);
    

    这适用于所有类型的情况。

    谢谢,

    湿婆

    【讨论】:

      猜你喜欢
      • 2020-11-10
      • 2015-10-20
      • 2011-03-18
      • 2021-10-16
      • 2017-08-20
      • 2021-07-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多