2017-01-05 10 views
0

これは、ショッピングカートに触発されたjeasyui.comとされています。私はそれに3つの問題があります。テーブル内にある入力フィールドの値を取得するjquery

  1. 入力ボックスで値が変更された場合、値の値を取得できません。
  2. カートからアイテムを削除するときに、そのサービスを適切なタブで再度利用できるようにする必要があります。
  3. サービスは新しいタブごとにインデントされます。私はそれらが最初から毎回始める必要があります。

これはこれまでのコードです:codepen.ioです。それが面倒であれば申し訳ありません.JavaScript/jqueryで初めて作業しています。どんな助けもありがとうございます。ありがとうございました!量を得るために

function removeProduct(el) { 
var name1 = $(el).closest('tr').find('td').eq(0).text(); 
var price1; 
for (var i = 0; i < data.length; i++) { 
    if (name1 == data[i][0]) { 
    price1 = data[i][2]; 
} 
    var className = $(el).parent().attr('class'); 
    /**Add a new list item in item class with the class name and the service name and price in paragraphs.*/ 
    $(el).closest('tr').remove(); 
} 
} 

function changeQuantity(el) { 
var name1 = $(el).closest('tr').find('td').eq(0).text(); 
var quantity1 = $(el).closest('tr').find('td').eq(1).value; 
var price1; 
for (var i = 0; i < data.length; i++) { 
    data[i][1] = quantity1; 
    data[i][2] = price * quantity1; 
    if (name1 == data[i][0]) { 
    price1 = data[i][2]; 
    } 
} 
$(el).closest('tr').find('td').eq(1).html("<input type='number' value='" + quantity1 + "' style='width:100%;'>"); 
$(el).closest('tr').find('td').eq(3).html(price1); 
} 

答えて

0

は行います

$(el).closest('tr').find('td').eq(1).find('input').val(); 

あなたは物理的にsource.remove();とDOMから要素を削除しているので、簡単にはできません。私はそれを隠す要素にクラスを追加することをお勧めします。そしてカードからそれを取り除くときに、そのクラスを取り除く。また

.Products li { 
    display: none; 
} 

であるためにあなたのjsを変更:あなたの第三の問題については

、製品クラスを隠し、代わりにこれを追加CSSを削除します。

削除:

.Biostatistics { 
    display: none; 
} 
.ClinicalLaboratory { 
    display:none; 
} 
.Something{ 
    display:none; 
} 

追加このように(最も近い( 'li')を追加する:

x[i].closest('li').style.display = 'none'; 
+0

本当にありがとうございました!私は疑問に思っていましたが、直下の親クラスのクラス名をドロップされた要素に取得する方法を知りました。たとえば、Biostats Serviceをドラッグアンドドロップすると、「Biostatistics」を取得したいと考えています。私が "$(source).attr( 'class')"を使うと、onDrop関数では、 "Biostatistics"の代わりに "item" – Intelli

関連する問題