.attr()在属性选择一个变量不行
问题描述:
我有这样的代码.attr()在属性选择一个变量不行
<div class="field">
<label>Title</label>
<input id="post-titie" type="text">
</div>
<div class="ui olive message" for-field="post-title" hidden>
<div class="header">About Title</div>
<ul class="list">
<li>Visitors can see your title even if they're not logged in.</li>
<li>The title is public.</li>
</ul>
</div>
我想要做的就是当<input>
或<textarea>
集中,显示的信息与DIV .message
类。
我将$(this).attr('id')
作为变量(例如,post-title
),并通过.find('div[for-field="'+forwhom+'"]')
找到它。这不起作用。
但是,如果我将var forwhom
从$(this).attr('id')
(jQ选择器)替换为绝对值,如post-title
,它确实有效。
很奇怪!根据jQuery文档,.attr()
方法返回的字符串不是对象。
什么问题?
答
Div
属性for-field="post-title"
和input
有post-titie
有spelling mistake
。
post-title
和post-titie
不一样,这就是为什么你的代码没有找到与属性的div。
+0
它是拼写错误。我很不好意思。 – Benyi
答
我正在获取id属性。检查控制台错误:
$(function(){
$('.form textarea, :input').focus(function(){
var forwhom = $(this).attr('id'); /* working */
/* var forwhom = 'post-title'; works */
console.log(forwhom);
});
});
答
一些提示:
1)使用Chrome浏览器开发工具的控制台
2测试你的选择)使用.prop()
代替.attr()
3).closest()
ins tead of $(this).parents().eq(2)
只需试试这个'$(':input')'因为:input是一个jquery扩展 – gurvinder372
当我尝试它时它工作正常:http://jsbin.com/pusoyej/1/edit?html, js,输出 – Quentin