【问题标题】:How to target specific attribute with a certain value in jQuery? [duplicate]如何在jQuery中以特定值定位特定属性? [复制]
【发布时间】:2020-01-07 09:45:07
【问题描述】:

我要解决的问题是:

编写函数newMessage,它接收主题名称作为参数。函数应将 p 标签的背景颜色更改为红色,其中 data-topic-name 为 topicName。

例如,如果 HTML 是:

<div>
  <p data-topic-name="discussion">General discussion</p>
  <p data-topic-name="bugs">Bugs</p>
  <p data-topic-name="animals">Animals</p>
</div>

调用 newMessage("discussion") 后的 HTML 应该是:

<div>
  <p data-topic-name="discussion" style="background-color: red;">General discussion</p>
  <p data-topic-name="bugs">Bugs</p>
  <p data-topic-name="animals">Animals</p>
</div>

现在,当我使用以下内容时,我以为我拥有它:

function newMessage(topicName) {
  $('p[data-topic-name=topicName]').css('background-color' , 'red')
}

不幸的是,它不起作用。

我认为p[data-topic-name = topicName] 是正确的选择器吗?

【问题讨论】:

  • topicName 在您的选择器中是一个字符串,而不是您传递的变量

标签: jquery


【解决方案1】:

您在正确的轨道上,但您需要将变量名称移到引号之外,例如:

function newMessage(topicName) {
  $('p[data-topic-name='+topicName+']').css('background-color' , 'red')
}

例子:

function newMessage(topicName) {
  $('p[data-topic-name='+topicName+']').css('background-color' , 'red')
}
newMessage('discussion');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
  <p data-topic-name="discussion">General discussion</p>
  <p data-topic-name="bugs">Bugs</p>
  <p data-topic-name="animals">Animals</p>
</div>

【讨论】:

  • 谢谢。 +variableName+ 是 jQuery 选择器中传递变量的方式吗?
  • 这是最常见的方式是的
猜你喜欢
  • 1970-01-01
  • 2021-05-19
  • 1970-01-01
  • 2021-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-26
  • 1970-01-01
相关资源
最近更新 更多