わかりました、質問だけで頭が回転します。
関数を呼び出しているアンカー タグがあります。
<a href="#" id="addPerson" onClick="addPerson(); return false;">Add a Guest</a>
参考までに、これは呼び出されている関数です。
function addPerson() {
//current keeps track of how many rows we have.
current++;
console.log($(this).parent('form').attr('id'));
var strToAdd = '<div class="row">\
<div class="column grid_2">\
<label for="two-guests-name'+current+'">Guest '+current+':</label>\
</div>\
<div class="column grid_5">\
<input name="two-guests-name'+current+'" type="text" id="two-guests-name'+current+'" value="Name" onfocus="RemoveFormatString(this, \'Name\')" /> \
<input name="two-guests-age'+current+'" type="text" class="guestage digits" id="two-guests-age'+current+'" value="Age" size="4" maxlength="3" onfocus="RemoveFormatString(this, \'Age\')" />\
</div>\
</div>'
$('#numberguests').append(strToAdd)
};
この関数が 1 つのページの複数のフォームで動作できるようにしたいと考えています。だから私の考えは、ツリーを親フォーム要素に戻し、そのIDを取得し、それを(何らかの方法で)使用して、関数がページ内の複数のフォームで機能できるようにすることでした。
簡単な console.log を使用してアイデアをテストしようとしたことがわかりますが、「未定義」が返され続けました。アンカータグ自体でconsole.logも実行してみましたが、やはり「未定義」でした。
私は .parents() をテストしましたが、アンカータグでは完全に機能しますが、関数iteslfでは機能しません。
助言がありますか?