1

現在、次のコードを使用しています。

jQuery('#book-a-service').click(function(){
 var selectedServices = jQuery('.selected').parent().parent().html();       
 console.log(selectedServices);
});

そしてそれは次を返します:

<td rowspan="3">Brakes</td>
  <td class="service-title">BRAKES SET</td>
  <td class="service-description"><p>Setting of front and rear brakes for proper functioning (excluding bleeding)</p></td>
  <td class="service-price">R <span id="price-brakes-set">R75</span><div id="select-brakes-set" class="select-service selected"></div>
</td>

JSONの「.selected」クラスを持つすべての要素の配列が必要であることを除いて、これは私が望むものです..tdタグの内容のみを取得する方法でそれをほぼ解析する方法を知りたいだけです「サービス価格」については数値のみで、それらの値をjsonオブジェクトに挿入するにはどうすればよいですか?

どんな助けでも大歓迎..

4

2 に答える 2

3

jQuery is not my most formidable frameworks, but this seems to do the trick.

jQuery('#book-a-service').click(function(){
    var selected = jQuery('.selected');
    selected.each( function() {
        var children = jQuery(this).parent().parent().find('td');
        var json = {};
        console.log(children);
        json.type = jQuery(children[0]).text();
        json.title = jQuery(children[1]).text();
        json.description = jQuery(children[2]).find('p').text();
        json.price = jQuery(children[3]).find('span#price-brakes-set').text();
        console.log(json);
        console.log(JSON.stringify(json));
    });
});

in action: http://jsfiddle.net/3n1gm4/DmYbb/

于 2013-08-15T20:32:45.557 に答える
0

さまざまな要素が同じクラスを共有していて、それらを $(".class") で選択すると、次を使用してそれらすべてを反復処理できます。

$(".selected").each(function() {
    var element = $(this); // This is the object with class "selected" being used in this iteration
    var absoluteParent = $(this).parent().parent();

    // Do whatever you want...

    var title_element = $(".service-title", absoluteParent); // Get service-title class elements in the context provided by "absoluteParent", I mean, "inside" of absoluteParent
    var title = title_element.html();
});

価格の特定のケースでは、価格が正確にはわかりません (おそらく R75?)。とにかく、div 内にある必要があり、その div を選択して価格を取得します。R75 の場合、「id」プロパティは HTML 内のすべての DOM オブジェクトに対して一意である必要があることに注意してください。

また、HTML を取得するときは、実際の要素ではなく文字列のみを取得しているため、新しい値を簡単に取得するにはおそらく役に立たないことに注意してください (DOM 要素を実際のオブジェクトの HTML を表している場合でも、通常の文字列)。実際に HTML が必要でない限り、常に jQuery オブジェクトを取得して操作してください。

JSON 文字列を生成するには、グローバル配列を作成し、そこに必要なオブジェクト/値を追加するだけです。次に、次を使用して JSON 文字列を取得できます。var jsonText = JSON.stringify(your_array);

ほとんどの場合役に立たないため、Javascript でこれを実行しないことを検討してください。POST 値を介して値をスクリプト (PHP など) に送信するだけで、PHP で実際の値を取得できます。もう 1 つの方法 (PHP から Javascript) は、( を使用してjson_encode($a_php_array)) JSON を返し、Javascript で を使用して JS 配列に変換するのに役立ちますvar my_array = JSON.parse(the_string_returned_by_php);

于 2013-08-15T20:35:13.533 に答える