无法设法以jQuery为目标

时间:2018-11-26 09:27:06

标签: javascript jquery

我正试图通过具有jQuery函数的链接来定位父对象,首先是获取其innerHtml,但现在只是获取其值。

但是,我无法跟踪它,而我已经花了太多时间在这个简单的问题上。

这是我的html:

<table>
  <tr>
      <td title="td_title_1" value="td_value_1">Some text<a href="#" title="Copy">Element_1</a></td>
      <td title="td_title_2" value="td_value_2">Some other text<a href="#" title="Copy">Element_2</a></td>
  </tr>
</table>

还有我的jQuery:

$(function(){
    $("*").on('click','a[title="Copy"]',function(){
        var clipboard = $(this).parent('td').find('[title="td_title1"]').val();
        alert(clipboard);
    });
});

我尝试了parent(),parents(),closest()...我仍然得到“未定义”的值。是的,添加了jQuery库。

此外,您将如何获得“某些文本”部分?

感谢您的时间。

5 个答案:

答案 0 :(得分:10)

value不是td或其他任何输入的有效属性,只能输入。您必须使用data-value才能正确。

HTML:

<table>
    <tr>
        <td title="td_title_1" data-value="td_value_1">Some text<a href="#" title="Copy">Element_1</a></td>
        <td title="td_title_2" data-value="td_value_2">Some other text<a href="#" title="Copy">Element_2</a></td>
    </tr>
</table>

JS:

$(function(){
    $(document).on('click','a[title="Copy"]', function(){
        var clipboard = $(this).parent().data('value');
        alert(clipboard);
    });
});

*(星号选择器)是一个棘手的选择器。请勿在所有目的中使用它。

答案 1 :(得分:5)

$(function(){
    $("*").on('click','a[title="Copy"]',function(){
        var clipboard = $(this).parent('td').filter('[title="td_title1"]').attr('value');
        alert(clipboard);
    });
});

您应该尝试使用过滤器。查找功能用于查找孩子,您的目的是根据条件过滤tds,并将val更改为.attr('value'),因为.val仅用于输入,而使用attr <读取任何属性/ p>

答案 2 :(得分:5)

第一件事是您需要使用SELECT p.pr_id, -- NOT liker.id_produk COUNT(l.id_produk) AS jumlah_like, l.id_user FROM produk p LEFT JOIN liker l ON l.id_produk = p.pr_id AND l.id_user = 1 GROUP BY p.pr_id, l.id_user; ,以便它仅适用于所需的元素,第二件事是,您可以使用简单的方法来克隆元素,以便仅获取其中的文本部分。 stopPropagation()元素,它是被单击元素的直接父元素。

<td>
$(function() {
  $("*").on('click', 'a[title="Copy"]', function(e) {
    var clipboard = $(this).parent('td')
      .clone() //clone the element
      .children() //select all the children
      .remove() //remove all the children
      .end() //again go back to selected element
      .text();
    alert(clipboard);
    e.stopPropagation();
  });
});

答案 3 :(得分:5)

只需使用@users.route("/oisdate_upload", methods=['GET', 'POST']) @login_required def doimport_ois_date(): msg=None if request.method == 'POST': def OIS_date_init_func(row): #c.id = row['id'] c = Ois_date(row['date'],row['on'],row['m1'],row['m2'],row['m3'],row['m6'],row['m9'],row['y1'],row['y2'],row['y3'],row['y4'],row['y5'],row['y7'],row['y10']) return c request.save_book_to_database( field_name='file', session=db.session, tables=[Ois_date], initializers=[OIS_date_init_func]) msg = "Successfully uploaded" #return redirect(url_for('users.doimport_ois_date'), code=302) if((Ois_date.query.order_by(Ois_date.date.desc()).first()) is not None): date_query = Ois_date.query.order_by(Ois_date.date.desc()).first() start_date = date_query.date date_query1 = Ois_date.query.order_by(Ois_date.date.asc()).first() end_date = date_query1.date return render_template('OISdate_upload.html',msg=msg, start_date=start_date,end_date=end_date)

$(this).parent().attr('value');
$(function(){
    $(document).on('click','a[title="Copy"]',function(e){
        var clipboard = $(this).parent().attr('value');
        alert(clipboard);
         e.stopPropagation();
    });
});

答案 4 :(得分:3)

尝试

alert($(this).parent('td').attr('value'));