我有一個嵌套列表,裏面有任意數量的li和任意數量的ul,在li中每個li都有2個隱藏的輸入:一個id和一個父代的id。如何在嵌套子列表中通過JavaScript保存父ID
<ul>
<li>
<input type="hidden" name="question[id][]" value="'. $sub['id'] .'" />
<input type="hidden" name="question[parent][]" value="'. $question['id'] .'" />
<ul>
<li>
<input type="hidden" name="question[id][]" value="'. $sub['id'] .'" />
<input type="hidden" name="question[parent][]" value="'. $question['id'] .'" />
</li>
</ul>
</li>
<li>
<input type="hidden" name="question[id][]" value="'. $sub['id'] .'" />
<input type="hidden" name="question[parent][]" value="'. $question['id'] .'" />
<ul>
<li>
<input type="hidden" name="question[id][]" value="'. $sub['id'] .'" />
<input type="hidden" name="question[parent][]" value="'. $question['id'] .'" />
</li>
</ul>
<ul>
<li>
<input type="hidden" name="question[id][]" value="'. $sub['id'] .'" />
<input type="hidden" name="question[parent][]" value="'. $question['id'] .'" />
</li>
</ul>
</li>
</ul>
我使用jQuery排序排序的嵌套列表,而現在對它們進行排序後,我需要將相應的父ID保存到每一個項目的子表。
理論上每個子問題的父id是第二個最接近的ul的第一個輸入的值。 另外,如果沒有父母ul,那麼我想將父母標識設置爲0. 如何找到它?這是我到目前爲止有:
$('#reorder_form').submit(function(){
$('li').each(function() {
$id = $(this).closest('ul').closest('li').find("input[name='question[id]']").val();
if(typeof($id) == 'undefined') $id=0;
$(this).find("input[name='question[parent]']").val($id);
});
});
我不是100%肯定這是你如何通過每個輸入正確的循環,因爲我打兩次每一個。也許我應該通過李的循環?
那麼這將是最接近的ul,但我明白你在說什麼。 –
'li'很好,你可以從你提供的html – Popnoodles
中得到你,但是每個ul中可以有任意數量的li。你不需要使用.parents()上去嗎? –