在数据值字符串中动态添加连字符jQuery

Jon*_*rra 4 html javascript jquery

所以我有一个简单的UL页面,它应该在运行时通过AJAX调用和JSON响应填充.

$(".select-brands").append("<li data-value=" + manufacturerName + ">" + manufacturer + "</li>");
Run Code Online (Sandbox Code Playgroud)

在此之后我使用该数据值属性以滚动到与用户在不同选择框中选择的元素相同名称的元素.因此,当他们选择Harley Davidson图片时,jQuery会查找for的元素

data-value="HARLEY-DAVIDSON"
Run Code Online (Sandbox Code Playgroud)

然而,结果不是我所期望的,而不是那个数据值我反而得到这样的元素

<li data-value="HARLEY" davidson="">HARLEY DAVIDSON</li>
Run Code Online (Sandbox Code Playgroud)

我该如何制作它以便我可以根据这个名称选择元素?可以通过li标签内的文本来完成吗?

// Get corresponding brand on list by custom data-value attribute //
var listBrand = $('li[data-value="'+ selectedBrand.toUpperCase() +'"]');
var parent    = $('#brands-select');
var index     = listBrand.index();

parent.animate({
        scrollTop: $('#brands-select li:nth-child('+ index +')').position().top - $('#brands-select li:first').position().top
}, 'slow');
Run Code Online (Sandbox Code Playgroud)

这是我用来滚动到所选元素的代码.

Sci*_*ter 5

$(".select-brands").append("<li data-value=" + manufacturerName + ">" + manufacturer + "</li>");
Run Code Online (Sandbox Code Playgroud)

您没有在属性名称周围加引号.你应该这样做:

$(".select-brands").append("<li data-value='" + manufacturerName + "'>" + manufacturer + "</li>");
Run Code Online (Sandbox Code Playgroud)

有报价.

没有它们,它会被解析为两个独立的属性,如下所示:<li data-value=HARLEY-DAVIDSON>,因为连字符会被忽略.