2017-04-14 126 views
0

我有一個函數'refreshDisplay',這將幫助我創建動態元素。 現在,我的病情很小。 在圖像的'src'屬性中,我將檢查obj.picture.thumbnail是以'/ content'開頭,然後將'.jpg'作爲'src'屬性的擴展名添加,否則什麼都不做!更改動態元素的屬性,如果它通過條件

請檢查代碼中類'.myLink'的圖像。 我該如何做到這一點?

這是代碼。

function refreshDisplay() { 
 
    $('.container').html(''); 
 
\t savedData.forEach(function (obj) { 
 
\t // Reset container, and append collected data (use jQuery for appending) 
 
\t $('.container').append(
 
\t \t \t $('<div>').addClass('parent').append(
 
\t \t \t \t $('<label>').addClass('dataLabel').text('Name: '), 
 
\t \t \t \t obj.name.first + ' ' + obj.name.last, 
 
\t \t \t \t $('<br>'), // line-break between name & pic 
 
\t \t \t \t $('<img>').addClass('myLink').attr('src', obj.picture.thumbnail), $('<br>'), 
 
\t \t \t $('<label>').addClass('dataLabel').text('Date of birth: '), 
 
\t \t \t \t obj.dob, $('<br>'), 
 
\t \t \t \t $('<label>').addClass('dataLabel').text('Address: '), $('<br>'), 
 
\t \t \t \t obj.location.street, $('<br>'), 
 
\t \t \t \t obj.location.city + ' ' + obj.location.postcode, $('<br>'), 
 
\t \t \t \t obj.location.state, $('<br>'), 
 
\t \t \t \t $('<button>').addClass('removeMe').text('Delete'), 
 
\t \t \t \t $('<button>').addClass('top-btn').text('Swap with top'), 
 
\t \t \t \t $('<button>').addClass('down-btn').text('Swap with down') 
 
\t \t \t) \t 
 
\t \t); 
 
\t }) 
 
\t // Clear checkboxes: 
 
\t $('.selectRow').prop('checked', false); 
 
\t handleEvents(); 
 
}

回答

1

您可以使用.attr(function)RegExp.protytpe.test()RegExp^\/content/匹配的問題描述字符串,條件運算符來連接".jpg"或返回現有src或空字符串。

.attr("src", function(i, src) { 
    return /^\/content/.test(obj.picture.thumbnail) ? src + ".jpg" : src 
}) 
+0

非常感謝!適用於我,只需要一次更改 - .attr(「src」,function(i,src){/}返回/^\/content/.test(obj.picture.thumbnail)?src +「.jpg」:obj。 picture.thumbnail }) – Sunny

1

更換

$('<img>').addClass('myLink').attr('src', obj.picture.thumbnail), $('<br>'), 

隨着

$('<img>') 
    .addClass('myLink') 
    .attr('src', 
     obj.picture.thumbnail + 
     (obj.picture.thumbnail.indexOf('/content') === 0 ? '.jpg' : '')), 
$('<br>'),