当前位置: 首页 > 知识库问答 >
问题:

无法将没有值的属性(“隐藏”)正确添加到HTML元素[重复]

严琨
2023-03-14

我正在尝试使用以下代码动态添加和删除隐藏在一些超文本标记语言元素中的属性:

<li><a href="#" onclick="SelectImage( 5 ); return false;">6</a></li>
...
<a href="/image/5"><img class="image_to_be_selected" id="image_5" hidden src="/img/5.jpg"></a>
<script type="text/javascript">
  $('#image_0').removeAttr( 'hidden' );
  function SelectImage( no ) {
    $('.image_to_be_selected').prop( 'hidden' );
    $('#image_'+no).removeAttr( 'hidden' );
  }
</script>

代码的主要思想是在开始和结束时从第一个图像中删除属性“hidden”(隐藏)

但代码工作不正常:<代码>$()。prop()未按需要添加属性。我应该使用<代码>$()。attr('hidden',true),但在这种情况下,HTML将变为:

<a href="/image/5"><img class="image_to_be_selected" id="image_5" hidden='hidden' src="/img/5.jpg"></a>

(带有额外的=“隐藏”字符)

HTML有效性POV是否正确?JQuery中是否有任何函数可以添加没有值的属性?

共有3个答案

吕钧
2023-03-14

您使用的prop()错误prop('string')是getterprop('string',value)是setter。您正在使用getter并期望它设置值。

所以

$('a').prop('hidden', true);

确实

<a href="/image/5"><img class="image_to_be_selected" id="image_5" hidden src="/img/5.jpg"></a>

$('a').prop('hidden', false);

结果在

<a href="/image/5"><img class="image_to_be_selected" id="image_5" src="/img/5.jpg"></a>

将代码更改为:

$('#image_0').prop('hidden', true);
  function SelectImage( no ) {
    $('.image_to_be_selected').prop('hidden',  true);
    $('#image_'+no).prop('hidden', false);
  }

应达到预期效果

或者按照Wbas说的做......

党源
2023-03-14

另一种方法是对所选元素使用jquery show()和hide()。

$('#elementID').show();
邹开畅
2023-03-14

与其添加和删除隐藏属性,为什么不使用jQuery. show()和. hid()呢?

$('#image_0').show();
  function SelectImage( no ) {
    $('.image_to_be_selected').hide();
    $('#image_'+no).show();
}
 类似资料:
  • 问题内容: 在当前正在研究的学习项目中,我需要添加一个属性,其值为数字。 如果我创建自己的属性,说“ messid”并为其分配一个数字值,例如“ 12”,“ 6”等,可以吗? 这就是为什么我要这样做,以便如果我做错了,则可以纠正我:我需要在我的JavaScript中(使用jQuery)访问此数字。仅获取attribute的值很容易,但是从诸如“m12”或“ m6”之类的字符串中提取数字值很麻烦。(

  • 问题内容: 使用Angular Material时,我一直看到aria属性。有人可以向我解释,aria前缀是什么意思?但最重要的是,我想了解的是和属性之间的区别。 问题答案: ARIA(可访问的富Internet应用程序)定义了一种使残障人士更容易访问Web内容和Web应用程序的方法。 该属性是HTML5中的新增属性,它告诉 浏览器 不要显示该元素。该属性告诉 屏幕阅读器 是否应该忽略该元素。请查

  • 我有一个元素(一个由角度用户界面评级(底部链接到Plunkr)创建的星级)。我想在整个span(评级)元素上应用一个边框,以便在有表单提交而没有评级时提醒用户。(类似于

  • 问题内容: 我有以下代码: Angular2中 有什么方法可以将HTML添加到中吗?因为上述内容仅添加到组件HTML的末尾。 我也尝试过: 但这是行不通的,因为@ViewChild指令必须在函数之外,我再也无法控制它了 我也这样尝试过: 我不能做的事情是因为我的内容是动态的并且使用唯一的ID,并且我不能动态使用[innerHtml](它仅适用于我第一次放入它们的面板,然后其他任何更改都不能再使用i

  • 我有麻烦了。 问题是我试图将一个对象添加到这个对象的列表中。这个列表是一个属性,没有错误,但是当我运行它的时候,它失败了,因为:“NullReferenceException”。听起来合乎逻辑,因为列表的属性是“null”,但我不能声明一个属性,是吗? 她有些代码被剪掉了: [...] [...]

  • 在实现selenium测试之前,我尝试在工作中为selenium测试解决一个recaptcha。 我使用的用例:https://www.google.com/recaptcha/api2/demo 系统也是如此。我试图找到验证码令牌,但每次它都返回null元素。到目前为止,硒的主要作用是: Bys. CssSelector等也是如此。 我已经在正确的IFrame中了,因为页面源已正确打印出来,但通