不确定从哪里开始, 这是设计:
我有一个使用drupal中的视图动态填充的表。该表有一列用于语言,以及一个文件的相应链接,用于节点上有翻译的任何语言。
输出如下:
<table class="views-table cols-2">
<thead>
<tr>
<th class="views-field views-field-language views-align-left">Language</th>
<th class="views-field views-field-download views-align-right"></th>
</tr>
</thead>
<tbody>
<tr class="odd views-row-first">
<td class="views-field views-field-language views-align-left">English</td>
<td class="views-field views-field-download views-align-right"><a href="/file/26/download?token=c3e7cLRldQolkKcDvhceXCKuPJwhSpYMfObOxZZFBFY">Download</a></td>
</tr>
<tr class="even views-row-last">
<td class="views-field views-field-language views-align-left">Spanish</td>
<td class="views-field views-field-download views-align-right"><a href="/file/26/download?token=c3e7cLRldQolkKcDvhceXCKuPJwhSpYMfObOxZZFBFY">Download</a></td>
</tr>
</tbody>
</table>
从此我想要一个列出语言的下拉列表,以及一个根据所选语言而变化的下载链接。任何人都可以使用Jquery或javascript解决方案吗?
我发现以下SO主题有类似请求,只有我的请求需要动态更新下载链接。
答案 0 :(得分:1)
此处有 jsfiddle
var meta = {}
function updateDownLink () {
var selected = $(this).context.selectedOptions[0].text;
$('#download').attr('href', meta[selected]);
}
var select = $(document.createElement('select')).insertBefore($('.views-table tbody').hide());
select.change(updateDownLink);
$('.views-table tbody tr').each( function(r){
optionText = $(this)[0].cells[0].innerText;
meta[optionText] = $(this).find('a')[0].href.substr(7);
option = $(document.createElement('option')).appendTo(select).html(optionText)
})
var a = $(document.createElement('a')).insertAfter($('.views-table'));
$(a).attr('href', meta['English']).attr('id', 'download').text('Download');