我正在尝试使用jquery将div转换为链接。为了使链接工作,我需要找回每章的story_id和chapter_id,但是当我这样做时,我只回到第一章_id ...所以所有链接都是相同的。我在制作场景吗?
我的jquery看起来像是一个故事块。
$('.storyInnerBlock').click(function(){
var story_id = $('.story_id').val();
var chapter_id = $('.chapter_id').val();
$ (location). attr ('href', 'http://www.writeyourfiction.com/index.php/story/readStory/'+story_id+'/'+chapter_id);
});
我设置了一个小提琴,以显示最新情况。
http://jsfiddle.net/zazvorniki/vwnCb/6/
任何帮助将不胜感激! :)
答案 0 :(得分:1)
我建议:
$('.storyInnerBlock').click(function () {
var context = $(this).closest('.storyInnerBlock'),
story_id = context.find('.story_id').val(),
chapter_id = context.find('.chapter_id').val();
alert('story ' + story_id);
alert('chapter ' + chapter_id);
});
实际上这是因为getter方法(那些返回值,text或HTML(以及其他)的方法)只返回选择器返回的匹配集的 first 元素的内容。
上述方法提供了一个上下文,找到了最近的祖先.storyInnerBlock
元素,并使用find()
限制了该元素内的搜索。
参考文献:
答案 1 :(得分:0)
val()仅返回匹配集中第一个元素的值,因此所有链接的story_id和chapter_ id都相同。 你需要循环遍历每个匹配。实际上,你只需要在你的click()函数中使用$(this)来引用匹配集中的当前元素,因为click() function对匹配的集合执行隐式循环:
$(document).ready( function() {
$('.storyInnerBlock').on('click', function(){
var story_id = $(this).children('.story_id').val()
var chapter_id = $(this).children('.chapter_id').val()
console.log(story_id + "<--->" + chapter_id);
});
});