DOM遍历使用jQuery

时间:2015-09-12 16:31:13

标签: javascript jquery html css

我正在尝试创建一个比较叠加层,显示用户在“添加到比较”链接时选择的项目。(例如,当您点击添加比较时,flipkart中的一个显示在顶部)。这是我的代码:

/show overlay when one checkbox is checked and add its name/image to the empty space
  $('.comparison').click(function(e){
     var clgId = $(this).parentsUntil('.individual-clg-container').find('.image-header').text();
     e.preventDefault();
     var clg = $("<li></li>")
     clg.text(clgId);
     var removeLink = $("<a href=''>(Remove)</a>");
     clg.append(removeLink)
     $('.comparison-colleges').append(clg);
     $('.add-to-compare-overlay').show("slide", { direction: "up" }, 300);

  });

的Javascript

       button1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent iSecond=new Intent(getActivity(),ShowImage.class);
            iSecond.putExtra("image_path",image_path);
            startActivity(iSecond);
        }
    });

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(getActivity(), "Launching Camera", Toast.LENGTH_SHORT).show();

            Intent imageIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            File imagesFolder = new File(Environment.getExternalStorageDirectory(), "MyImages");
            imagesFolder.mkdirs();
            File image = new File(imagesFolder, "image_001.jpg");
            fileUri = Uri.fromFile(image);
            imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
            startActivityForResult(imageIntent, REQUEST_CODE_FROM_CAMERA);

        }
    });
    return view;
}


@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_CODE_FROM_CAMERA && resultCode == Activity.RESULT_OK && data != null) {
        Uri selectedImage = data.getData();
        Intent send = new Intent(getActivity(), ShowImage.class);
        send.putExtra("pictureUri", selectedImage.toString());
        startActivity(send);
    }
}

我希望将包含类'image-header'的div中的文本分配给变量clgId。我面对我的代码的问题是它添加了包含类'image-header'的所有div的文本。例如,我希望在单击添加时分配值text1以将div与id text1进行比较。但它会将“text1 text2 text3”分配给clgId。

请帮忙

2 个答案:

答案 0 :(得分:1)

我已经创建了一个JSFiddle,我认为是你想要的功能(我在clgId变量的脚本中包含了一个控制台日志输出):

http://jsfiddle.net/py38kuvv/

我将parentsUntil函数替换为closest函数(并替换了individual-clg-container类选择器):

var clgId = $(e.target).closest('.individual-college-container').find('.image-header').text();

并更新了您的点击处理程序:

$('.comparison').on( "click", function(e) {

为了在将来获得更快的回复,发布到目前为止您所拥有的JSFiddle使其他人更容易提供帮助:)

答案 1 :(得分:0)

它正在添加所有这些因为

var clgId = $(this).parentsUntil('.individual-clg-container').find('.image-header').text();

应该是

var clgId = $(this).parentsUntil('.individual-college-container').find('.image-header').text();