你似乎可以用具有相同的ID选择元素。这不行; ID必须是唯一的。
赋予这两个<select>
期不同的ID,但保持相同的类,并尝试这样的事:
$(document).ready(function() {
$("select.add_event_url").change(function(e) {
var $select = $(this),
event_date = $select.val(),
baseurl = 'https://www2.gotomeeting.com/register/';
$("a.desturl").attr('href', baseurl + event_date);
});
});
http://jsfiddle.net/74Lfg/1/
UPDATE
为了从select
穿越到正确的a.desturl
,你需要把它们放在相同的相对位置,以便它们可以从this
。 http://jsfiddle.net/74Lfg/4/
$(document).ready(function() {
$("select.add_event_url").change(function(e) {
var $select = $(this),
event_date = $select.val(),
baseurl = 'https://www2.gotomeeting.com/register/';
$select.closest('form').find('.webinarLink2 a.desturl').attr('href', baseurl + event_date);
});
$('select.add_event_url').trigger('change');
});
HTML(注意第一个链接已经移到表格内):
<form>
<select id="event_date_01" class="add_event_url">
<option value="124167826">4th Oct 2012, 2pm-3pm AEST</option>
<option value="398017490">4th Oct 2012, 3pm-4pm BST</option>
<option value="536485554">25th Oct 2012, 3pm-4pm AEDT</option>
<option value="708861114">25th Oct 2012, 3pm-4pm BST</option>
<option value="339435154">29th Oct 2012, 3pm-4pm AEDT</option>
<option value="">29th Oct 2012, 3pm-4pm GMT</option>
</select>
<span class="webinarLink2">
<a href="" target="_blank" class="desturl webinarLink">
Register now »
</a>
</span>
</form>
<form>
<select id="event_date_02" class="add_event_url">
<option value="411491250">27th Sept 2012, 2pm-3pm AEST</option>
<option value="175324970">27th Sept 2012, 3pm-4pm BST</option>
</select>
<span class="webinarLink2"><a href="" target="_blank" class="desturl webinarLink">Register now »</a></span>
</form>
另外,您可以分配各个环节的唯一ID(这样你就可以在任何地方把它在该页面中)并将该ID添加为data-
属性到select
元素。 http://jsfiddle.net/74Lfg/5/
$(document).ready(function() {
$("select.add_event_url").change(function(e) {
var $select = $(this),
event_date = $select.val(),
baseurl = 'https://www2.gotomeeting.com/register/';
$('#'+$select.data('targetlink')).attr('href', baseurl + event_date);
});
$('select.add_event_url').trigger('change');
});
HTML:
<form>
<select id="event_date_01" class="add_event_url" data-targetlink="targetlink1">
<option value="124167826">4th Oct 2012, 2pm-3pm AEST</option>
<option value="398017490">4th Oct 2012, 3pm-4pm BST</option>
<option value="536485554">25th Oct 2012, 3pm-4pm AEDT</option>
<option value="708861114">25th Oct 2012, 3pm-4pm BST</option>
<option value="339435154">29th Oct 2012, 3pm-4pm AEDT</option>
<option value="">29th Oct 2012, 3pm-4pm GMT</option>
</select>
<span class="webinarLink2">
<a href="" target="_blank" id="targetlink1" class="desturl webinarLink">
Register now »
</a>
</span>
</form>
<form>
<select id="event_date_02" class="add_event_url" data-targetlink="targetlink2">
<option value="411491250">27th Sept 2012, 2pm-3pm AEST</option>
<option value="175324970">27th Sept 2012, 3pm-4pm BST</option>
</select>
<span class="webinarLink2"><a href="" target="_blank" class="desturl webinarLink" id="targetlink2">Register now »</a></span>
</form>
你只发布一个形式。另一个是什么样的? – Blazemonger
其他形式完全相同,只是选项不同 – CarlTaylor1989
您的两个'select'元素都有#event_date ID吗?如果是这样,他们必须是唯一的。尝试将'$(this)'作为参数传入函数 – Scrimothy