如何在jQuery中以特定值定位特定属性? [复制]
Posted
技术标签:
【中文标题】如何在jQuery中以特定值定位特定属性? [复制]【英文标题】:How to target specific attribute with a certain value in jQuery? [duplicate] 【发布时间】: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
在您的选择器中是一个字符串,而不是您传递的变量
【参考方案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 选择器中传递变量的方式吗? 这是最常见的方式是的以上是关于如何在jQuery中以特定值定位特定属性? [复制]的主要内容,如果未能解决你的问题,请参考以下文章