2012-11-15 46 views
0

我试图用jQuery获取html标记的属性值。jQuery - 挣扎着未定义的变量

$query = "SELECT * FROM frontpage_modules"; 
     mysql_query("SET NAMES 'utf8'"); 
     $result = mysql_query($query) or (mysql_error()); 
     while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
      $list[] = $row['module_name']; 
      $name[] = $row['name']; 
      $img[] = $row['img']; 
      $link[] = $row['link']; 
      $module_content[] = $row['module_content']; 
     } 
    ?> 


    <form action="ChangeFrontpageModule.php" method="post"> 
    <ul id="gallery"> 
      <?php 

       for ($idx = 0; $idx < count($list); $idx+=1) { 
        echo "<li data-itemid='" . $idx . "'>"; 
        echo "<div class='drag_div'>"; 


        echo '<div class="kundeutsagn">'; 
        echo '<img src="http://www.amedisin.no/pictures/artikler/'.$img[$idx].'" alt="Top5" title="Top5" />'; 
        echo '<div class="statement_top">'; 
        echo '<h5>'.$name[$idx].'</h5>'; 
        echo "<input type='text' name='title' value='".$name[$idx]."' />"; 
        echo $module_content[$idx]; 
        echo '</div></div>'; 


        echo "</div>"; 
        echo "</li>"; 
       } 
      ?> 
     </ul> 
    </form> 

我想通过存储在data-itemid(在li中)和输入元素中的值的id。

我能够从输入元素获取数据,虽然这个代码“变种标题= $(本).VAL();”,但属性值returnes错误“未定义”

下面是您发布的jQuery脚本返回一个错误

​​3210

回答

2

你问从$(this).parent('ul')data-itemid属性,但在第一个片段的属性是对<li>元素,而不是在<ul>

编辑:仔细一看,input也不是li的直接后代。改为使用closest()

所以,如果你切换$(this).parent('li')$(this).closest('li')你应该没问题。

信用closest() @ wirey的评论,我曾误认为parents()

+0

你是正确的,但事实上,@克里斯我错过了一个点它不与任何立工作 –

+0

。仔细观察并更新,希望它能起作用。 – Rick

+2

.parents()将选择所有'li'父母是清楚的,所以如果你嵌套'ul',你会得到多个'li',.closest()可能会更好 –