为什么jQuery('<img class="pull-left"/>',{src:'...'})创建没有src的图像?

时间:2016-11-02 17:00:38

标签: javascript jquery

问题是我尝试使用以下代码创建图像:

var $img = jQuery('<img class="pull-left"/>', {
    src: 'images/video.svg'
})

令人惊讶的是,它只会在类中创建一个img元素但没有src属性。如果我然后使用它:

$img.attr('src','images/video.svg');

然后图像获得其src属性。这是为什么?这是一个简单的片段,说明了这个问题:

$img = jQuery('<img class="pull-left"/>',{
    src: 'images/video.svg'
});
alert($img.attr('src'));

$img.attr('src','images/video.svg');
alert($img.attr('src'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

2 个答案:

答案 0 :(得分:2)

它不起作用,因为您需要为选择器提供一个空元素,然后在第二个参数中添加您提供的对象中的所有属性,如下所示:

&#13;
&#13;
$img = jQuery('<img />',{
    src: 'images/video.svg',
    class: 'pull-left'
});

console.log($img.attr('src'));
console.log($img.attr('class'));
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:2)

foreach (var i in vm.SearchProperties) { if (result == null) result = db.MyTable.ToList().Where(x => x.GetType().GetProperty(i).GetValue(x, null).ToString().ToLower().StartsWith("MySearchString")); else result = result.ToList().Where(x => x.GetType().GetProperty(i).GetValue(x,null).ToString().ToLower().StartsWith(i.Suchfeld.ToLower(“mySearchString”))); } 的官方文档说第一个参数应为a string defining a single, standalone, HTML element (e.g. <div/> or <div></div>)

因此,要么删除该类并将其添加到参数对象,要么使用foreach (var i in vm.SearchProperties) { if (result == null) result = db.MyTable.Where(x => "x." + i + ".ToLower().StartsWith('MySearchString')"); else result = result.Where(x => "x." + i + ".ToLower().StartsWith('MySearchString')"); }

jQuery( html, attributes )

- 或 -

attr

第二种方法适用于在代码的不同部分创建和修改元素的情况。