我正在尝试使用data属性向表中添加其他信息。这适用于前两个属性,但不适用于data-makeModelDescription,data-firstRegistration和data-mileage。在这里我得到输出
<tbody data-set="0"
data-url="http://127.0.0.1:8888/selfstudy/projects/ad/res/test/212302246.php"
data-makemodeldescription="Corvette" c5="" cabrio=""
data-firstregistration="EZ" 03="" 2001="" data-mileage="96.000" km="">
但它应该是:
<tbody data-set="0"
data-url="http://127.0.0.1:8888/selfstudy/projects/ad/res/test/212302246.php"
data-makemodeldescription="Corvette c5 cabrio"
data-firstregistration="EZ 03/2001"
data-mileage="96.000 km">
来源:
$.each(response, function(key, value) {
$('#table__cars').append('<tbody
data-set='+key+'
data-url='+value.carDetailsURL+'
data-makeModelDescription='+value.makeModelDescription+'
data-firstRegistration='+value.firstRegistration+'
data-mileage='+value.mileage+'></tbody>');
其他人是否也遇到过同样的问题?任何有关如何调试此观察的提示也会很棒。我使用console.log()检查是否e。 G。 value.mileage的值是正确的,它是。就在我将它用作数据属性的值时,我得到了这个奇怪的输出。
答案 0 :(得分:2)
你得到的是正确的,因为你在用代码写空格而不是在引号中。你应该使用
$.each(response, function(key, value) {
$('#table__cars').append('<tbody
data-set="'+key+'"
data-url="'+value.carDetailsURL+'"
data-makeModelDescription="'+value.makeModelDescription+'"
data-firstRegistration="'+value.firstRegistration+'"
data-mileage="'+value.mileage+'"></tbody>');
由于您使用的是简单的字符串连接,因此未引用时,新项目将被理解为新的empty attributes。见这个例子:
var val = "test foo bar";
$('#table__cars').append('<tbody data-val=' + val + '>');
这与说:
完全相同$('#table__cars').append('<tbody data-val=test foo bar>');
HTML解析器通常希望属性具有值,因此它显示为空:
<tbody data-val="test" foo="" bar="">
这就是需要引号的原因,即使quotes are not required in certain cases,我建议也一直使用它们。否则一切都可能在测试中起作用,但是稍后当某个值有空格时它会破坏。
5之前的HTML版本也需要引用属性值。