当我尝试附加数据 ID 时;我收到一个错误
When I'm trying to append data-id; I got an error
看看这个:这是一个工作正常的简单代码
.html
<select></select>
<button id="btn1">click me</button>
.js
$('#btn1').on('click',function(){
var select = $('select');
select.append($('<option>').val('v2').text('text2'));
});
当我尝试附加数据 ID 时,我遇到了错误。有什么帮助吗?
select.append($('<option>').val('v2').text('text2').data-id('id1'));
http://jsfiddle.net/omarmakled/QQ44U/
你可以用2种方式做到这一点
select.append($('<option>').val('v2').text('text2').attr('data-id','id1'));
或
select.append($('<option>').val('v2').text('text2').data('id', 'id1'));
http://api.jquery.com/data/http://api.jquery.com/attr/
首先,data-id
字符串在 JS 中是非法标识符(因为它包含连字符),因此即使它可以作为 jQuery 对象方法使用,您也应该这样称呼它......
someObj['data-id'](someId);
显然,对于如此简单的操作来说,这太混乱了。事实上,jQuery.prototype 中没有定义这样的方法 - 而是希望你使用 attr()
(显式设置任何属性)或data()
(特定于数据集 API 的属性)。
作为旁注,您不必打那么多电话:这...
select.append($('<option>', {
value: 'v2',
text: 'text2',
'data-id': 'id1'
}));
。更具可读性和效率。请注意"data-id"两边的引号:对象属性只有在正确的JS标识符时才能不加引号。
JSFiddle.
正确的使用方法是data()
:
select.append($('<option>').val('v2').text('text2').data('id','id1'));
或者,如果你想要一个实际的属性,你可以使用attr()
:
select.append($('<option>').val('v2').text('text2').attr('data-id','id1'));
相关文章:
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 从我的控制器返回一个不同于200的代码以触发ajax错误,这被认为是一种好的做法吗
- 预期响应包含一个对象,但在angular js中得到一个数组错误
- 错误:$injector:modulerr模块错误(我的第一个SPA应用程序)
- 一个ajax循环有两个输出错误innerHTML
- 在量角器中创建一个.txt错误输出文件是手动的,而不是控制台错误
- 我怎么能把一个错误当作未捕获的错误来记录呢
- 我需要一个jQuery函数来只工作在700px以上的屏幕大小,无法在我的代码中发现错误
- 在这个使用hasOwnProperty的对象扩展程序中有一个错误,I'我不确定那个bug是什么,也不确定这个扩展
- 从另一个JSAppleScript运行另一个JS AppleScript时出现权限错误
- 当张贴到数据库时,I'我得到了一个“;可以't在它们被发送错误之后设置报头”;
- javascript window.location在检查firebug时给了我一个错误的url路径
- 调试器;[错误]194:11:标识符是一个保留字
- new SharedWorker(“whatever.js”)返回一个错误
- 页面上的2个表单带有JS验证-其中一个抛出电子邮件验证错误
- JQuery关注上一个点击的输入错误
- 在一个函数中,我有一个未捕获的语法错误:意外的标记else
- 未捕获的引用错误——一个函数工作而另一个不起作用
- 图表API错误——[一个或多个参与者未能绘制()]